Macro para copiar una columna a otra sin celdas vacías

Tengo una columna con varios datos unos 30 celdas llenas, pero le elimino unas 10 celdas,(no seguidas, si no entre medio de la columna). Y me quedan celdas vacías entre medio de las 30 datos de la columna, ahora lo que quiero hacer con una macro es copiar eso datos que quedaron de la columna pasarlos a otra, pero solamente copiando las celdas que contengas datos a otra columna o sea sin las celdas vacías. Todo esto en la misma hoja de trabajo, solo pasar los datos de la columna A a la columna F

1 respuesta

Respuesta
1

¿Y tiene que ser con una macro? Porque (si he entendido el problema), me parece que con una fórmula se puede conseguir lo que necesita:

=SI.ERROR(INDICE(A:A;K.ESIMO.MENOR(SI(A1:A30<>"";FILA(A1:A30));FILA()));"")

teniendo en cuenta que

  • La fórmula iría en F1, copiar y pegar hasta F30
  • se trata de una fórmula matricial, por lo que hay que introducirla pulsando mayúsculas control entrada al mismo tiempo
  • quizás haya que sustituir los puntos y comas por comas: dependerá del separador de listas que esté establecido en la configuración regional del equipo.

Se me olvidó convertir en absolutas las referencias al rango A1:A30. La fórmula debe ser:

=SI.ERROR(INDICE(A:A;K.ESIMO.MENOR(SI($A$1:$A$30<>"";FILA($A$1:$A$30));FILA()));"")

Lo que pasa que la hoja tiene demasiadas formulas y estamos teniendo problemas con memoria, entonces se esta tratando de cambiar las formulas y ejecutar una macro.

Gracias por su tiempo.

Yo prefiero evitar el uso de código siempre que resulta posible, pero en cualquier caso para usar VBA habría que pegar el siguiente código en el módulo de la hoja (pulsación derecha sobre la etiqueta de la hoja->Ver Código):

Private Sub Worksheet_Change(ByVal Target As Range)
    If Application.Intersect(Target, Me.[A1:A30]) Is Nothing Then Exit Sub
    Me.[F1:F30].ClearContents
    Union(Me.[A1:A30].SpecialCells(xlCellTypeConstants), Me.[A1:A30].SpecialCells(xlCellTypeFormulas)).Copy Destination:=Me.[F1]
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas