Visual Basic para Aplicaciones - BUCLE CON SUMAR.SI

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

BUCLE CON SUMAR.SI

Publicado por Winer (2 intervenciones) el 25/01/2022 06:36:11
HOLA TENGO UN PROBLEMA Y ESPERO ALGUIEN ME PUEDA AYUDAR
Necesito crear un bucle que utilice la función SUMAR.SI Donde
comparen un producto determinado de una tabla con n productos,
sume los que son iguales, escriba ese valor y salte al siguiente
producto para comparar. Comparto mi codigo, si alguien puede
ayudarme estaria muy agradecido.

Private Sub CommandButton1_Click()

Dim suma As Double
Hoja3.Select

With Application.WorksheetFunction

suma = .SumIf(Hoja4.Range("B:C"), Hoja3.Range("B2"), Hoja4.Range("C:C"))
Hoja3.Range("C2") = suma

'El codigo de arriba es el que necesito que se haga en bucle aumentando
'una linea para comparar y escribir como se muestra a continuación:
'suma = .SumIf(Hoja4.Range("B:C"), Hoja3.Range("B3"), Hoja4.Range("C:C"))
'Hoja3.Range("C3") = suma

End With
End Sub
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

BUCLE CON SUMAR.SI

Publicado por Antoni Masana (498 intervenciones) el 25/01/2022 16:36:40
No entiendo que es lo que quieres sumar.

Necesito crear un bucle que utilice la función SUMAR.SI Donde comparen un producto determinado de una tabla con n productos, sume los que son iguales, escriba ese valor y salte al siguiente producto para comparar. Comparto mi codigo, si alguien puede ayudarme estaria muy agradecido.

En la celda C2 de la Hoja3 quieres hacer una suma de un producto determinado dentro de una tabla que está en Hoja4, en esta hoja esta en producto en la columna B y la cantidad en la columna C.

Lo que no entiendo es para que se necesita el bucle, tampoco entiendo porque tienes una macro para hacer algo que hace exactamente igual una función en la celda C2.

Ayuda a entender lo que quieres hacer si subes el libro es, más un poco más fácil entender lo que quieres hacer.

En la macro no se que sentido tiene buscar en las columnas B y C, tampoco se que estas buscando.

1
2
3
4
5
6
7
8
9
10
11
12
Private Sub CommandButton1_Click()
    Dim suma As Double
    Hoja3.Select
    With Application.WorksheetFunction
        suma = .SumIf(Hoja4.Range("B:C"), Hoja3.Range("B2"), Hoja4.Range("C:C"))
        Hoja3.Range("C2") = suma
        'El codigo de arriba es el que necesito que se haga en bucle aumentando
        'una linea para comparar y escribir como se muestra a continuación:
        'suma = .SumIf(Hoja4.Range("B:C"), Hoja3.Range("B3"), Hoja4.Range("C:C"))
        'Hoja3.Range("C3") = suma
    End With
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
0
Comentar
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

BUCLE CON SUMAR.SI

Publicado por Antoni Masana (498 intervenciones) el 25/01/2022 20:11:04
Solucionado sin macros.

Formulas según la columna de la hoja TotalVentas

1
2
3
Columna C:  =SI(SUMAR.SI(VENTAS!$B:$B;B2;VENTAS!$C:$C)=0;"";SUMAR.SI(VENTAS!$B:$B;B2;VENTAS!$C:$C))
Columna D:  =SI(ESNUMERO(C2);REDONDEAR(E2/C2;2);"")
Columna E:  =SUMAR.SI(VENTAS!$B:$B;B2;VENTAS!$E:$E)

En la columna C la fórmula simple es esta:

1
=SUMAR.SI(VENTAS!$B:$B;B2;VENTAS!$C:$C)

Pero para evitar que salga 0 cuando no hay ventas pongo la otra. El cambio también afecta a formula de la columna D.

También he creado una Tabla Dinámica para tener el mismo resultado de una forma más simple y cómoda.

Adjunto libro.

Saludos.
\\//_
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