Copiar y pegar datos en una otro en la siguiente celda vacia

Estoy trabajando sobre una macro y necesito copiar los datos de la primera hoja desde la celda E3:J20 sin que me tome los campos vacios y pegar en la segunda hoja en el rango A:F pero a partir de la siguiente celda en blanco o vacía.

Necesito

2 respuestas

Respuesta
2

H o l a y bienvenido a TodoExpertos!

A qué te refieres con "sin que me tome los campos vacíos".

Quieres decir, si toda la fila, por ejemplo de E5 hasta J5 está vacía, ¿entonces esa fila no debe copiarse?

Muchas gracias por atender mi pregunta. 

Exactamente a eso me refiero. No copiar las filas que se encuentren si informacion. 

Prueba la siguiente macro.

Nota: En la segunda hoja deberás tener información, por lo menos en una fila, puede ser el encabezado.

Sub CopiarDatos()
  Dim i As Long, lr As Long
  Application.ScreenUpdating = False
  For i = 3 To 20
    If WorksheetFunction.CountA(Sheets(1).Range("E" & i & ":J" & i)) > 0 Then
      lr = Sheets(2).Range("A:F").Find("*", , xlValues, , xlByRows, xlPrevious).Row + 1
      Sheets(1).Range("E" & i & ":J" & i).Copy
      Sheets(2).Range("A" & lr).PasteSpecial xlValues
    End If
  Next
  Application.CutCopyMode = False
End Sub

Buen días

No me funciona..

Te comparto la estructura para que la revises por favor

Lo que necesito es que la Macro realice una busqueda en el Rango de la "Tabla 4" que va desde (E3:J20) y se encuentra en la hoja llamada "Registro", y copie las celdas que tienen información Ejemplo si desde E3:J6 hay datos copiarlos y si E7:J20 esta vacía no copiar. Luego Pegar en la hoja "Pagos" desde la Columna (A6:F6) a partir de la siguiente celda vacía. 

No he podido lograr que cada vez que le de al botón Guardar me grabe la información en la celda vacia siguiente, siempre me sobreescribe la información anterior. 

Sub Grabar()
'
' Grabar Macro
'

'
Range("Tabla4").Select
Selection.Copy
Sheets("Pagos").Select
Range("A6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A9").Select
Sheets("Registro").Select
Application.CutCopyMode = False
Range("E3").Select
End Sub

Eso hace la macro que te puse, pero veo que pusiste otra macro.

Solamente mencionaste que tenías:

" Copiar los datos de la primera hoja ... y pegar en la segunda hoja"

La macro copia de sheets(1) y pega en sheets(2), pero no lee los datos de una tabla, porque tampoco mencionaste eso.

Pon tu información en la primera hoja de tu archivo. El resultado lo verás en la segunda hoja de tu archivo. La primer hoja es la primera de izquierda a derecha. Prueba nuevamente la macro.

Respuesta
1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas