Suma lógica sobre formulario

Estimada experta hace tiempo no la molestaba espero se encuentre muy bien...
Se trata de una suma lógica:
Tengo 10 combobox, frente a ellos la misma cantidad de etiquetas(label)
Si e en los combobox elijo un producto, la etiqueta del frente arroja un valor X.
Ahora Combobox, pueden haber hasta 5 con diferentes productos(del total de 10)
Naturalmente tengo abajo una etiqueta del 11 al 15 para recibir el resultado de estas sumas por productos.
¿Como puedo hacer para que se sumen las cantidedes de los productos que son iguales del combobox
Ejemplo en el CB1 tengo pino = 20 en el label1
en el CB2 tengo alerce = 100 en el label2
en el CB3 tengo Roble = 35 en el Label3
En el CB4 nuevamente tengo pino
Entonces en una etiqueta se sumen todos los pinos, en otra los alerce y en otra los robles.
De esto lo único que se que obedece a funciones lógicas
Pero no se como funciona una sumartoria así,
Cordialmente
AUB
1

1 Respuesta

2.185.165 pts. En mi sitio encontraran material de ayuda, ejemplos...
Esto es sencillo con funciones en celdas, pero en esos controles del UF es un poco más complejo.
Se me ocurre que utilices un bucle del tipo For i = 1 to 10 (encontrarás más ejemplos en el cap 'Comandos especiales' del manual) donde i sea parte del nombre del control. Por ej: para i = 2 será el Combobox2 y el Label2 (*)
Siguiendo esta idea, esta rutina va en el formulario en un botón de comando (faltan algunas opciones)
Private Sub CommandButton1_Click()
Dim miCtrl, miLabel, i
'declarar todas las variables para totalizar
Dim tpino, tnogal, tcedro, talerce As Integer
For i = 1 To 10
miCtrl = "Combobox" & i
miLabel = "Label" & i
Select Case UserForm1.Controls(miCtrl).Value
Case Is = "pino"
tpino = tpino + Val(UserForm1.Controls(miLabel))
Case Is = "alerce"
talerce = talerce + Val(UserForm1.Controls(miLabel))
Case Is = "nogal"
tnogal = tnogal + Val(UserForm1.Controls(miLabel))
Case Is = "cedro"
tcedro = tcedro + Val(UserForm1.Controls(miLabel))
'seguir con las otras opciones
End Select
Next i
Label11.Caption = tpino
Label12.Caption = talerce
Label13.Caption = tnogal
Label14.Caption = tcedro
'seguir con los otros totales
End Sub
(*) si ya sabés que el label1 será para pino y el label2 será para alerce, por ej, entonces directamente nombrá estos controles en cada case:
Case Is = "pino"
tpino = tpino + Val(Label1)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas