Macro Excel para pasar datos de una hoja a otra

Necesito que me ayude con una macro que me copie un rango de celdas de una hoja y las pegue en otra hoja, pero si hay datos en la hoja que las pegue en la primera fila vacía.

2 Respuestas

Respuesta
1

¿El rango de celdas que necesitas copiar es fijo?

Si, F2:DO2

¡Gracias! 

Copia el código en un modulo y asígnalo a un botón o un evento de tu hoja, estoy suponiendo que la hoja donde copias los datos se llama "Hoja1" y donde se copiaran es "Hoja2" y el rango donde se pegara la información inicia en la columna F y el primer rango es el encabezado de las columnas.

Avisa si tienes alguna duda.

Sub Copia_Rango()
    Worksheets("Hoja1").Activate
    Range("F2:D02").Select
    Selection. Copy
    Worksheets("Hoja2"). Activate
    Range("F1"). Activate
    If Range("F2").Value = "" Then
        ActiveCell.Offset(1, 0). Activate
        ActiveSheet. Paste
        Application.CutCopyMode = False
    Else
        ActiveCell.End(xlDown).Offset(1, 0).Activate
        ActiveSheet.Paste
        Application.CutCopyMode = False
    End If
End Sub

Respuesta
1

[Hola 

Te paso la macro, cambia el nombre de la hoja por el tuyo y el rango a copiar

Sub copiar()
'
''*Por Adriel Ortiz
'
Set h1 = Sheets("Hoja1")
Set h2 = Sheets("Hoja2")
u = h2.Range("A" & Rows.Count).End(xlUp).Row
'
h1.Range("A1:B10").Copy 'rango a copiar
h2.Range("A" & u).PasteSpecial Paste:=xlPasteValues
End Sub

¡Gracias! 

Para pegar en el rango A2 (ya que tengo encabezados) ¿como seria?

muchas gracias

Macro actualizada

Sub copiar()
'
''*Por Adriel Ortiz
'
Set h1 = Sheets("Hoja1")
Set h2 = Sheets("Hoja2")
u = h2.Range("A" & Rows.Count).End(xlUp).Row
'
If u < 2 Then u = 2
h1.Range("A1:B10").Copy 'rango a copiar
'
h2.Range("A" & u).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
'
MsgBox "Rango copiado"
End Sub

hay 2 opciones para valorar Excelente o bueno saludos

Hola Adriel

tengo la siguiente macro tuya, pero he modificado unas cosas , y ya no me funciona.

Sub copiar()
'
''*Por Adriel Ortiz
'
Set h1 = Sheets("HOJA DE CAJA")
Set h2 = Sheets("DIARIO")
u = h2.Range("A" & Rows.Count).End(xlUp).Row
'
If u < 2 Then u = 2
h1.Range("F2:CV2").Copy 'rango a copiar
'
h2.Range("A" & u).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
'
strTitulo = "Contaplus"

Continuar = MsgBox("¿CONTABILIZAR DATOS?", vbYesNo + vbExclamation, strTitulo)
If Continuar = vbNo Then Exit Sub
End Sub

El rango a copiar se encuentra en la "HOJA de CAJA" (F2:CV2), es una linea solo.

y se tendría que pegar en la hoja "DIARIO", a partir de A2 sin que se sobre copien los datos que hayan en esta hoja.

espero que me puedas ayudar.

¡Gracias! 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas