Visual Basic para Aplicaciones - Sumar por mes y año

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 177
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Sumar por mes y año

Publicado por Albert (204 intervenciones) el 25/09/2021 10:20:06
Buenos días foreros, en 2016 Marco Antonio me soluciono un problema de suma por meses que me ha funcionado muy bien hasta ahora, que ademas de por mes necesito que sea por mes y año, es un listado de gastos de varios años y necesito ver lo gastado por mes en cada año lo he intentado pero no me sale bien, con este código
Dim Año As Date
Año = TextBox1
SumasF(mes) = SumasF(mes) + Range("F" & x)

en el textbox1 pongo el año y entonces debería darme el resultado por mes de ese año
en esta formula he intentado poner el año
mes = Month(Range("A" & x))
Asi
mes = Month + Año(Range("A" & x))

pero no se como ponerle el año a la formula
Os adjunto una prueba por si podéis mirarlo.
Mil gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Sumar por mes y año

Publicado por Antoni Masana (498 intervenciones) el 29/09/2021 11:16:01
Con el cambio que te he puesto en negrita se soluciona el problema:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Private Sub TextBox1_AfterUpdate()
    Dim SumasF(13) As Double, SumasG(13) As Double, SumasH(13) As Double
    Dim Año As Date
    'pongo fecha en formulario
    FacturadoA = Date
    'En el textbox1 hay que poner el año que buscas
    Año = TextBox1
    'Acumulamos
    For x = 3 To Range("A" & Rows.Count).End(xlUp).Row
        If Año = Year(Range("A" & x)) Then
            Mes = Month(Range("A" & x))
            'aqui es donde no se como poner el mes y el año
            'Totales mes por año
            SumasF(Mes) = SumasF(Mes) + Range("F" & x)
            SumasG(Mes) = SumasG(Mes) + Range("G" & x)
            SumasH(Mes) = SumasH(Mes) + Range("H" & x)
            'Totales año
            SumasF(13) = SumasF(13) + Range("F" & x)
            SumasG(13) = SumasG(13) + Range("G" & x)
            SumasH(13) = SumasH(13) + Range("H" & x)
        End If
    Next
    'Totales mes a formulario
    For x = 1 To 13
        If Not SumasF(x) = 0 Then
            Controls("F" & x) = FormatNumber(SumasF(x))
            Controls("G" & x) = FormatNumber(SumasG(x))
            Controls("H" & x) = FormatNumber(SumasH(x))
        End If
    Next
    'Totales año a formulario
    Controls("F13") = FormatNumber(SumasF(13))
    Controls("G13") = FormatNumber(SumasG(13))
    Controls("H13") = FormatNumber(SumasH(13))
End Sub

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 177
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Sumar por mes y año

Publicado por Albert (204 intervenciones) el 29/09/2021 12:38:12
Mil Gracias funciona perfectamente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar