VBA - Para los valores de un rango, copiar datos desde otra hoja

Necesito vuestra ayuda para hacer funcionar una macro que me está volviendo loco.

Hoja ANALISIS: tengo una tabla con fechas en la columna C (rango C10:C14) y con 7 columnas más a la derecha de ésta que debo cubrir.

Hoja PLAN: en el rango AH6:AN6 tengo los datos de esas 7 columnas.

Lo que hago es llamar a una macro que me filtra la tabla PLAN en función de la fecha.

Con la tabla PLAN filtrada, tengo unos subtotales que me calculan la cantidad de pedidos en esa fecha (AH6:AN6)

Por ejemplo, con la fecha de la C10, filtro la tabla PLAN, copio AH6:AN6 de PLAN a D10:F10 de ANALISIS.

Hasta aquí todo funciona. El problema es que no consigo que me continúe haciendo lo mismo para la C11, C12,...

¿Me podríais echar una mano? Yo he probado con los dos códigos siguientes y no me funciona... Creo que hago algo mal en el For y for Each...

Sub CopiarPedidos()
Dim Celda As Range, Lista As Range
Set Lista = ActiveWorkbook.Worksheets("ANALISIS").Range("C10:C14")
'Recorrer la Lista --> copiar fecha en celda de PLAN y aplicar filtro
For i = 10 To 14
    If Cells(i, 3) <> "" Then
    Sheets("PLAN").Range("celFecha") = Cells(i, 3).Value
        ActiveWorkbook.Worksheets("PLAN").Select
           Call Filtrar_Fechas
'Copiar las celdas de PLAN y pegarlas en ANALISIS
    Range("AH6:AN6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ANALISIS").Cells(i, 4).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    End If
Next
End Sub
Sub CopiarPedidos()
Dim Celda As Range, Lista As Range
Set Lista = ActiveWorkbook.Worksheets("ANALISIS").Range("C10:C14")
'Recorrer la Lista --> copiar fecha en celda de PLAN y aplicar filtro
X = 10
For Each Celda In Lista
    If Range("C" & X) <> "" Then
    Sheets("PLAN").Range("celFecha") = Celda.Value
        ActiveWorkbook.Worksheets("PLAN").Select
           Call Filtrar_Fechas
'Copiar las celdas de PLAN y pegarlas en ANALISIS
    Range("AH6:AN6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ANALISIS").Range("D" & X).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    X = X + 1
    End If
Next
End Sub

1 Respuesta

Respuesta
1

Le hice algunos ajustes a tu primer macro y me funciona.

Sub CopiarPedidos()
    Application.ScreenUpdating = False
    Dim Celda As Range, Lista As Range
    Set h1 = Sheets("PLAN")
    Set h2 = Sheets("ANALISIS")
    'Recorrer la Lista --> copiar fecha en celda de PLAN y aplicar filtro
    For i = 10 To 14
        If h2.Cells(i, "C").Value <> "" Then
            h1.Range("celFecha") = h2.Cells(i, "C").Value
            Call Filtrar_fechas
            h1.Range("AH6:AN6").Copy
            h2.Cells(i, "D").PasteSpecial Paste:=xlPasteValues
        End If
    Next
    Application.ScreenUpdating = True
    Application.CutCopyMode = False
End Sub

Si tienes problemas, puedes poner también tu macro Filtrar_fechas para revisarla


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas