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 SubSub 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