¿Puede corregir mi macro que saca un resumen diario?
Para Elsa
¿Qué tal Elsa como estas?
Explico mi necesidad, debo abrir 4 libros de los cuales debo obtener la suma de magna, premium y diesel por día y pegarlo en(hoja) el día especifico (01 abril, 02 de abril y así sucesivamente), cada libro siempre inicia los datos en la celda A10 en dicha celda contiene 01/Abr/2017 hasta la A18, pero es variable, en otras ocasiones puede iniciar en A10 Y terminar en A11 y en A12 empezar con 02/Abr/2017 , de antemanos te doy mis más sinceros agradecimientos y estoy al pendiente para cualquier duda.
Sub Cierrediario()
libros = Array("EFECTIVALE", "EDENRED", "ULTRAGAS", "SERVICIO ATITALAQUIA")
'Inicio con 01 de abril y termino hasta el 30 de abril solo para efectos practico puse al día 07
dias = Array("01 Abril", "02 Abril", "03 Abril", "04 Abril", "05 Abril", "06 Abril", "07 Abril")
ruta = ThisWorkbook.Path
librov = "Ventas 2017.xlsx"
If Dir(ruta & "\" & librov) = "" Then
MsgBox "No se encuentra el libro VENTAS en esta carpeta.... Verifica y vuelve a ejecutar el proceso.", , "ERROR"
Exit Sub
End If
milibro = ActiveWorkbook.Name
Workbooks.Open ruta & "/" & librov
For i = 0 To 3
sino = MsgBox("¿Deseas pasar los totales del libro " & libros(i) & "?", vbQuestion + vbYesNo, "CONFIRMAR")
If sino <> vbYes Then GoTo sigoConOtro
archivo = ruta & "\" & libros(i) & ".xls"
MsgBox archivo
Workbooks.Open archivo, UpdateLinks:=0
'mis datos inician en la celda A10 en dicha celda contiene 01/Abr/2017 hasta la A18, pero es variable, en otras ocasiones puede iniciar en A10 Y terminar en A11 y en A12 empezar con 02/Abr/2017
diax=day(sheets(1).[a10]
fini = Range("A" & Rows.Count).End(xlUp).Row
'necesito obtener los totales de los 3 tipos por día o sea 01 abril 02 abril y así sucesivamente... Hasta llegar al 30 de abril
totm = Application.WorksheetFunction.SumIf(Range("D10:D" & fini), "*MAGNA*", Range("F10:F" & fini)) totp = Application.WorksheetFunction.SumIf(Range("D10:D" & fini), "*PREMIUM*", Range("F10:F" & fini))
totd = Application.WorksheetFunction.SumIf(Range("D10:D" & fini), "*DIESEL*", Range("F10:F" & fini))
'ubico el dia(hoja) y pego el resultado
Workbooks(librov).Sheets(dias(diax - 1)).Range("J" & i + 23) = totm
Workbooks(librov).Sheets(dias(diax - 1)).Range("V" & i + 23) = totp Workbooks(librov).Sheets(dias(diax - 1)).Range("AH" & i + 23) = totd
ActiveWorkbook.Close False
sigoConOtro:
Next i
Workbooks(librov). Save
Workbooks(librov). Activate
MsgBox "FIN DEL PROCESO.", , "INFORMACIÓN"End Sub