Macro para copiar datos de una hoja a otra en excel

Necesito copiar un rango de valores de una hoja a otra

Específicamente los datos que tengo seleccionados para este ejemplo están en la hoja 1(rango de columnas fijo, filas variable), estos mismos datos necesito pasarlos a la hoja dos

hoja dos

He grabado una macro quedo asi:

Sub Macro2()
'
' Macro2 Macro
'
'
    Sheets("RE-DE-02 POA").Select
    Range("F15:I23").Select
    Selection.Copy
    Sheets("PRESUPUESTO").Select
    Range("A15:A17").Select
    ActiveSheet.Paste
End Sub

El problema que tiene que que si agrego más filas en la hoja 1, se desbordan las filas en la hoja 2, es decir pueden haber más de 3 objetivos en la hoja 1 en ese caso el macro pierde validez

1 Respuesta

Respuesta
1

Pues intenta así

Sub macro ()

Dim wb as Workbook:Set wb = Thisworkbook

Dim Ho as Worksheet: set Ho=wb.Sheets ("RE-DE-02 POA")

Dim Hd as worksheet:set Hd=wb.Sheets ("PRESUPUESTO")

For i = 15 To Ho.range ("F" & Rows.count).End(xlUp).Row

Application.screenupdating = False

Ucel=Hd.range ("A"& Rows.count).End (xlUp).Row +1

If Ho.cells(i, "F") >0 Then

Ho.range ("F"&i & ":I" & i).copy Hd cells (ucel, "A")

Application.cutcopymode= False

End if

Next

End sub

Al incrementar Filas a la Hoja 1, ¿se debe aumentar filas a la hoja 2?

Hola Cecilio Gracias por responder, cuando ejecuto el código me indica error de sintaxis en la línea:

Ho.range ("F"&i & ":I" & i).copy Hd cells (ucel, "A")

puedes enviarme tu archivo a [email protected]

Adjunto la rutina final Saludos

Sub macro()
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim Ho As Worksheet: Set Ho = Wb.Sheets("RE-DE-02 POA")
Dim Hd As Worksheet: Set Hd = Wb.Sheets("PRESUPUESTO")
  With Ho.[G14]
   If .Offset(1) = Empty Then Exit Sub
   fin = .End(xlDown).Row
  End With
  For i = 15 To 15
 If Ho.Cells(i, "F").Offset(0, 1) <> "" Then
     Ho.Range("F" & i & ":I" & fin).Copy Hd.Cells(15, "A")
 End If
  Next
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas