Copiar de un rango todas las columnas, solo de las filas cuya columna A tenga contenido, con un botón de macro

Tengo la hoja 2 con un formulario con un rango A3 - G20, y con un botón crear una macro que copie todas la columnas del rango de todas la filas cuya columna A tenga contenido y las restantes no copiarlas en blanco, en la hoja 1; consigo copiarlas todas, incluso las que están en blanco. Le envío la macro para ver si pueden ayudarme.

Muchas gracias

Sub copiarceldasocupadas()
'
' copiarceldasocupadas Macro
'

'
Range("A3:G20").Select
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("ARTICULOS").Select
Range("D1290").Select
Selection.Insert Shift:=xlDown
Range("L1295").Select
ActiveWindow.SmallScroll Down:=12
Range("D1:O1307").Select
Range("D1307").Activate
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("ARTICULOS").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("ARTICULOS").Sort.SortFields.Add Key:=Range( _
"E2:E1307"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("ARTICULOS").Sort
.SetRange Range("D1:O1307")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("J1313").Select
Sheets("compra articulos").Select
Range("A3:F20").Select
Selection.ClearContents
Range("A3").Select
End Sub

1 Respuesta

Respuesta
1

H o l a:

Te anexo la macro para copiar las filas que en la columna "A" tengan algo. Las copia de la hoja "compra articulos" a la hoja "ARTICULOS".

No mencionaste de cuál hoja a cuál hoja. Tampoco mencionas en cuál fila destino se deben pegar.

Prueba con la siguiente macro, avísame si hay que agregarle algo.

Sub CopiarFilas()
'Por.Dante Amor
    Set h1 = Sheets("compra articulos")
    Set h2 = Sheets("ARTICULOS")
    '
    For i = 3 To 20
        If h1.Cells(i, "A") <> "" Then
            u2 = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
            h1.Rows(i).Copy
            h2.Range("A" & u2).PasteSpecial xlValues
        End If
    Next
    MsgBox "Copia Terminada", vbInformation, "COPIAR FILAS"
End Sub

He probado en averiguar la ultima celda ocupada de la columna A, pero al poner el rango a copiar no se como hacerlo, porque no me admite la variable "ult" ni "ultima fila". Te envío lo que he puesto y donde me da error.

Sub copiarceldasocupadasenarticulos()
'
' copiar celdas ocupadas en articulos Macro
' calcular ultima celda ocupada

Sub copiarceldasocupadasenarticulos()
'
' copiar celdas ocupadas en articulos Macro
' calcular ultima celda ocupada

Dim ult As Integer
Dim ultimafila As Integer
ult = Cells(Rows.Count, 1).End(xlUp).Row
ultimafila = Q And ult
' copiar celdas ocupadas en articulos Macro
'
ActiveWindow.SmallScroll Down:=-6

AQUI ME DA ERROR
Range("A3:ultimafila").Select

Si consigo sustituir la ultima parte del rango por la ultima fila ocupada de la columna QUE, creo que ya puedo copiar y pegar insertado como quería hacer.

De nuevo gracias anticipadas.

Pero ya te envié una macro, debe probar la macro que te envié.

Si quieres que revise otra macro, deberás crear una nueva pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas