¿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

1 respuesta

Respuesta
1

Enviame la hoja de uno de los libros ( o un libro) y la hoja donde debe ir la suma para tomarla de ejemplo y ajustarte la macro.

Te devolví el libro. Cambié la fórmula por SUMAR. SI. CONJUNTO para incluir también la columna fechas.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas