Jump to content
Sign in to follow this  
Gandulfa

Separar celdas (descombinar) copiando contenido en todas

Recommended Posts

Hola,

Tengo una hoja en excel donde hay varias celdas combinadas. Quiero descombinarlas, pero de forma que el contenido de la celda combinada se copie automáticamente en todas las celdas que se originan con la descombinación.

No sé si necesito una macro, o hay alguna función que me permita hacerlo directamente en Excel, perdonad mi ignorancia.

Adjunto un ejemplo de lo que quiero hacer.

Se agradece cualquier aclaración o sugerencia.

Saludos,

Ejemplo.rar

Share this post


Link to post
Share on other sites

Hola @[uSER=168988]Gandulfa[/uSER].

En tu ejemplo, abre un módulo de Visual Basic (Presionar Alt + F11, y ahí Insertar - Módulo), y allí coloca el siguiente código:

Sub Descombinar()

Set Rango = Range("A2:I25")

With Rango
.UnMerge
.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
.Copy
.PasteSpecial xlPasteValues
End With

Application.CutCopyMode = False
Set Rango = Nothing
End Sub[/CODE]

Allí, para ejecutarlo, puedes colocar el cursor en cualquier parte dentro del código y presionas la tecla [b]F5[/b].

Recuerda hacer clic en "me gusta" si te ha ayudado a solucionar tu duda. Dios te bendiga!

Share this post


Link to post
Share on other sites

Gracias maestro @[uSER=136970]Armando Montes[/uSER]. Las herramientas nativas de Excel son geniales, ahorran mucho tiempo, son eficaces (van al punto sin tanto rodeo) y permiten hacer muchas cosas más rápidamente que los famosos "loops". Es bueno hacer uso de ellas cuando se puede. Bendiciones!

Share this post


Link to post
Share on other sites

Si no quieres usar macros, lo puedes hacer así:

  1. Seleccionas todo (ALT+E)
  2. Quitas la combinación de las celdas
  3. Seleccionas todo (ALT+E)
  4. Ir a (F5), seleccionas ESPECIAL, seleccionas CELDAS EN BLANCO
  5. Con las celdas en blanco seleccionadas, inserta formula iniciando con "=" + LA FLECHA HACIA ARRIBA, y presiona CTRL+ENTER

Con esos pasos se rellenarán los datos en blanco,, espero que te haya servido,,,

Saludos!

Carlos Miguel Muñiz López

Share this post


Link to post
Share on other sites

Gracias a todos!

Las dos soluciones funcionan perfectamente, con algunas dudas más por mi parte (perdonad mi inexperiencia):

@[uSER=113842]johnmpl[/uSER]: si selecciono manualmente el rango previamente a ejecutar la macro, cómo hago referencia al rango ya seleccionado?

@[uSER=32472]Carlos[/uSER]: Si lo hago con tu método, en las celdas previamente en blanco me queda una fórmula, con lo que si quisiera ordenar los datos (por ejemplo por la columna H de mi ejemplo, se me desvirtuarían todos. Hay alguna forma de una vez aplicada la fórmula decir que la cambie por el valor correspondiente fijo en cada celda?

Muchísimas gracias a los dos de nuevo!!!

Un saludo,

Share this post


Link to post
Share on other sites

Si quieres seleccionar el rango antes de ejecutar la macro, entonces puedes cambiar el código así:

Sub Descombinar()

With Selection
.UnMerge
.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
.Copy
.PasteSpecial xlPasteValues
End With

Application.CutCopyMode = False
End Sub[/CODE]

En cuanto a lo que dice @[uSER=32472]Carlos[/uSER], lo que puedes hacer es, después de hacer la fórmula con el [b]Ctrl + Enter[/b], seleccionar todo el rango, copiarlo y pegarlo como solo valores. En esencia, lo que dice @[uSER=32472]Carlos[/uSER] es lo que hago en la macro, de manera automática. Tu eliges!

Espero haberte ayudado, Dios te bendiga!

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

×
×
  • Create New...

Important Information

Privacy Policy