Copiar fila de hoja1 a hoja2 solo si tiene información

Necesito copiar de la hoja1 a partir de B28 solo las filas que tienen información en la columna B y pegar en la hoja2 en la columna L después de la ukltima celda con información y eliminar las filas de la hoja1 que tenían información

1 respuesta

Respuesta
1

[Hola 

valora la respuesta para finalizar 

Sub copia_elimina()
'
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
        u = h2.Range("B" & Rows.Count).End(xlUp).Row + 1
        '
    For i = h1.Range("B" & Rows.Count).End(xlUp).Row To 28 Step -1
         If h1.Cells(i, "B") <> "" Then
         h1.Range("B" & i).Copy h2.Range("L" & u)
         u = u + 1
         h1.Rows(i).Delete
         End If
    Next i
'
    MsgBox "fin"
End Sub

Muchas Gracias, funciona bien

 Creo que no explique bien, me funciona super, pero  solo me copia la información de la Celda B y no la fila completa con la información, necesito que me copie la información desde la celda B hasta la Celda L y la pegue en la hoja 2 desde la celda L hasta la celda R  y que al guardar un nuevo registro lo siga copiando hacia y no borre los que ya estan registrados

Espero me puedas ayudar

Saludos

Valora la respuesta como +Excelente para finalizar


Macro actualizada

Sub copia_elimina()
'
Application.ScreenUpdating = False
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
        u = h2.Range("B" & Rows.Count).End(xlUp).Row + 1
        '
    For i = h1.Range("B" & Rows.Count).End(xlUp).Row To 28 Step -1
         If h1.Cells(i, "B") <> "" Then
         h1.Range("B" & i & ":H" & i).Copy h2.Range("L" & u)
         u = u + 1
         h1.Rows(i).Delete
         End If
    Next i
    Application.ScreenUpdating = True
'
    MsgBox "fin"
End Sub

Estimado, todo bien, pero cuando quiero guardar otro registro en la hoja 2 me copia los nuevos por encima de los que ya tenia, seria posible que los nuevos registro los guarde abajo de los que ya existen, es decir si en la hoja 2 ya hay registros en las celdas  en L2,L3,L4 los siguientes los guarde desde la L5 hacia abajo y así consecutivamente y si fuera posible que al pegar en la hoja2 los pegue solo como valores 

espero me puedas ayudar 

Saludos 

Valora la respuesta como +Excelente para finalizar


Tienes razón va la macro

Sub copia_elimina()
'
Application.ScreenUpdating = False
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
        '
        u = h2.Range("L" & Rows.Count).End(xlUp).Row + 1
        '
    For i = h1.Range("B" & Rows.Count).End(xlUp).Row To 28 Step -1
         If h1.Cells(i, "B") <> "" Then
         h1.Range("B" & i & ":H" & i).Copy h2.Range("L" & u)
         u = u + 1
         h1.Rows(i).Delete
         End If
    Next i
    Application.ScreenUpdating = True
'
    MsgBox "fin"
End Sub

Estimado esta excelente, pero me sigue guardando los registros encima del anterior

Necesito que cuando guarde otro registro este se guarde en la fila de abajo abajo sin eliminar los registros anteriores

Saludos

Algo está sucediendo, probé la macro y funciona

Sube tu archivo a la nube y verificarlo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas