UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se puede subir archivos al foro, favor de hacerlo en servidor externo (Dropbox, Drive...) y dejan link. "Sin archivo no hay respuestas"

Favor de leer "Todos los temas" Click aquí.

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

Oscar Cocom


Buenas tardes, Hola, Espero me puedan ayudar a dar con la solución de lo siguiente (espero me explique bien):
Elaboré un libro en excel para llevar un control de gastos, este libro está conformado por cuatro hojas
1.- Datos
2.- Captura
3.- Lista de Gastos
4.- Gastos Mensuales
La primera hoja como su nombre lo dice, van una serie de datos que servirán para el flujo de información, la segunda hoja la elaboré de tal manera que cualquier usuario la pueda utilizar y consta unicamente de una lista donde se tiene que capturar:
- Fecha(lista desplegable dia, mes y año por separado)
- Nombre
- Cargo
- Tipo de Gasto(Lista desplegable)
- Número de Cuenta(Lista desplegable)
- Divisa
- Importe
- Facturado(lista desplegable)
- Nombre de proveedor
- Uso de CFDI (Lista desplegable)
y posteriormente dar click a un botón que habilité con la siguente macro:

Sub CapturarGasto()
'
' CapturarGasto Macro
'

'
    ActiveWindow.SmallScroll Down:=-9
    Sheets("Lista de Gastos").Select
    Rows("8:8").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    With Selection.Font
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .TintAndShade = 0
    End With
    Selection.Font.Bold = True
    Selection.Font.Bold = False
    Sheets("Captura").Select
    Range("C6:E6").Select
    Selection.Copy
    Sheets("Lista de Gastos").Select
    Range("B8:D8").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Captura").Select
    Range("C8:F8").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Lista de Gastos").Select
    Range("E8").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Captura").Select
    Range("C10:E10").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Lista de Gastos").Select
    Range("F8").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Captura").Select
    Range("C12:E12").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Lista de Gastos").Select
    Range("G8").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Captura").Select
    Range("C14:E14").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Lista de Gastos").Select
    Range("H8").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Captura").Select
    Range("C16:D16").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Lista de Gastos").Select
    Range("I8").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Captura").Select
    Range("C18:E18").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Lista de Gastos").Select
    Range("J8").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Captura").Select
    Range("C20").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Lista de Gastos").Select
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 4
    ActiveWindow.ScrollColumn = 5
    Range("K8").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveWindow.ScrollColumn = 6
    ActiveWindow.ScrollColumn = 7
    ActiveWindow.ScrollColumn = 8
    Sheets("Captura").Select
    ActiveWindow.SmallScroll Down:=3
    Range("C22:F22").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Lista de Gastos").Select
    Range("L8").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Captura").Select
    Range("C24:F24").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Lista de Gastos").Select
    Range("M8").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveWindow.ScrollColumn = 7
    ActiveWindow.ScrollColumn = 6
    ActiveWindow.ScrollColumn = 5
    ActiveWindow.ScrollColumn = 4
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 1
    Sheets("Captura").Select
    Application.CutCopyMode = False
End Sub

Que lo unico que hace es copiar y trasladar la información capturada en una base de datos con un formato especifico en la hoja #3 (Lista de Gastos )... Hasta ahí no hay mayor dificultad, el detelle viene al querer hacer un registro mensual de los gastos (hoja #4), donde tengo una tabla que en la fila de encabezado (B9:W11) está seccionado por día y los conceptos de gastos; y de ahi el motivo de mi mensaje, ya que no encuentro una manera (Ya intenté con formulas: buscarv, anidación indice&coincidir, bdextraer) de hacer que la información que se genera en la hoja #3 (Lista de Gastos) pase de acuerdo a los criterios de la hoja#4(Registro Mensual) para su posterior impresión y documentación... De antemano agradezco los aportes, observaciones y posibles soluciones de su parte... y quedo pendiente de cualquier comentario o aclaración.... Saludos!

P.D. El archivo lo tengo disponible en el siguiente enlace:
https://drive.google.com/open?id=1wEGWVLFE8K57HC92_xBydRPAWxXDWusi

Windows / Firefox 61.0

Igtelo

avatar
Hola Oscar.

Estuve viendo tu archivo y te sugiero reestructures el mismo, te dejo algunas ideas, es cuestión de que analices de que forma hacerlo más amigable, revisa todas las hojas. Y como consejo: Evita usar celdas combinadas y exceso de formatos, estos sólo dan dolores de cabeza.
Para que obtengas el resumen que quieres, lee, estudia y practica como usar filtro avanzado.

Bien por usar el grabador de macros, pero debes ejecutarla a pasos para que vayas aprendiendo como depurar.
Tu macro la puedes cambiar por ésta:
Código:
Sub Captura()
Dim w As Long

With Sheets("Lista de Gastos")           'Con hoja Lista de Gastos
w = .[B900000].End(xlUp).Row + 1         'Número de fila vacía
 .Cells(w, 2).Resize(, 3) = [C6:E6].Value  'Pasa datos de fecha
 .Cells(w, 5).Resize(, 9) = Application.Transpose([C7:C15])  'Transpone los demás datos
End With
MsgBox "Ok, guardado"  'Si quieres elimínalo, no afecta ni beneficia
End Sub

Link: [url=https://www.dropbox.com/s/7hky754mh3nkaqb/Oscar cocom-REGISTRO DE]https://www.dropbox.com/s/7hky754mh3nkaqb/Oscar%20cocom-REGISTRO%20DE%20GASTOS.xlsm?dl=0[/url]

Saludos
Ignacio Téllez

Oscar Cocom


Hola, Buena tarde.

Muchas gracias por el tiempo y el aporte, lo estaré revisando e igual analizando como reestructurar la info.

Saludos!

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.