Sacar reporte de varias hojas de excel

Buen día mi estimado te agradezco por el apoyo que me diste con el formulario anterior ya lo estoy trabajando solo un nuevo favor has de cuenta que necesito sacar un reporte de las empresas e imprimirlo el cual es por fecha has de cuenta quiero saber los movimientos del día 12/08/2012 de todas las empresas el cual mi idea es que me salga así

reporte de movimientos de todas las empresas

PEÓN

razón social

FECHA CONCEPTO DEPOSITO COSTO GASTO 12/08/2012 renta 2500

12/08/2012 nomina 7000

12/08/2012 teléfono 1500

al final muestre una suma 7000 4000 00

después entraría la segunda empresa

ALFIL

razón social

fecha concepto deposio costo gasto

12/08/2012 nomina 12000

12/08/2012 gasolina 700

12/08/2012 llantas 5000

total: 12000 00 5700

y asi scesiibamente todas las hojas de excel que tenga en el libro

total 19000 4000 5700

par que hasta el final salga un suma que se leería asi el dia 12/08/2012 entre todas las empresas tuvimos un deposito de 19000 un costo de 4000 y un gasto de 7500 y asi

este solo me interesaría que estaría que lo pudiera ver o imprimir ya que si li quiero guardar

a imprimirlo lo puedo imprimir en pdf

espero me puedas ayudar saludos

1 respuesta

Respuesta
1

Perdona la demora, te anexo la macro, en la macro hay una instrucción que se llama Select, en ella deben ir las hojas que no se deben considerar para el reporte
En mi ejemplo tengo estas hojas
Select Case hoja.Name
Case "hoja de trabajo", "Hoja4"
En la “Hoja4” se va a escribir el reporte completo de todas las empresas filtradas por la fecha.
De ahí ya puedes enviar a imprimir el reporte.

Instrucciones para ejecutar macro
1. Abre tu hoja de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona ALt + F11
3. En el menú elige Insertar / Módulo
4. En el panel del lado derecho copia la macro
5. Para ejecutarla presiona F5

Sub Macro1()
'copia datos de empresa filtrados por fecha
'Por.Dam
fecha = InputBox("Fecha: ")
'fecha = "10/11/2012"
Set destino = Sheets("Hoja4")
destino.Cells.Clear
For Each hoja In ActiveWorkbook.Worksheets
hoja.Select
Select Case hoja.Name
    Case "hoja de trabajo", "Hoja4"
    Case Else
        ActiveSheet.AutoFilterMode = False
        ufila_o = Range("A" & Rows.Count).End(xlUp).Row
        ufila_d = destino.Range("A" & Rows.Count).End(xlUp).Row + 2
        Range("A3:F3").Select
        Selection.AutoFilter
        Selection.AutoFilter Field:=1, Criteria1:=fecha, Operator:=xlAnd
        Range(Cells(1, 1), Cells(ufila_o, 6)).Copy Destination:= _
        destino.Cells(ufila_d, 1)
        ini_sum = ufila_d + 3
        fin_sum = Sheets("Hoja4").Range("A" & Rows.Count).End(xlUp).Row
        destino.Select
        destino.Cells(fin_sum + 2, 1) = "TOTAL"
        destino.Cells(fin_sum + 2, 3) = _
        WorksheetFunction.Sum(Range(destino.Cells(ini_sum, 3), destino.Cells(fin_sum, 3)))
        destino.Cells(fin_sum + 2, 4) = _
        WorksheetFunction.Sum(Range(destino.Cells(ini_sum, 3), destino.Cells(fin_sum, 3)))
        destino.Cells(fin_sum + 2, 5) = _
        WorksheetFunction.Sum(Range(destino.Cells(ini_sum, 3), destino.Cells(fin_sum, 3)))
        grand = grand + destino.Cells(fin_sum + 2, 3)
        granc = granc + destino.Cells(fin_sum + 2, 4)
        grang = grang + destino.Cells(fin_sum + 2, 5)
End Select
Next
destino.Select
ufila_d = destino.Range("A" & Rows.Count).End(xlUp).Row + 2
destino.Cells(ufila_d, 1) = "GRAN TOTAL"
destino.Cells(ufila_d, 3) = grand
destino.Cells(ufila_d, 4) = granc
destino.Cells(ufila_d, 5) = grane
End Sub

saludos.Dam

Perfecto amigo lo chequearé aun que o dudo que ara lo que necesito

saludos

de todos modos cualquier cosa te comento

saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas