Combobox que dependa de otro y me de resultados en un textbox.

Te queria preguntar, ya habiendo agregado un combobox sin que me repita datos y que me de la suma total de valores en un textbox por mes como le hago si quiero colocar otro combobox que me deje escoger la región donde se vendió el producto, como programo mi textbox para que al escoger una región me tire el total por mes solo de la región y no el total general.

1 respuesta

Respuesta
1

En los datos que pusiste no viene la región, ¿en qué columna está?

¿Podrías poner una imagen o un ejemplo de cómo tienes los datos?

¿Además del producto quieres que se combine con la región o son cosas diferentes?

Ese es una pequeña parte de mi base de datos, lo que quiero es que en un combobox pueda buscar por producto y el otro por región, al momento de cargar el total al textbox si solo elijo producto me sume en enero todas las ventas del producto1 para enero, pero si en el 2do combobox elijo región, que me sume solamente las ventas del producto elegido para cada región específica, no se si me doy a explicar, muchas gracias! :)

Cambia las macros anteriores por estas que te estoy enviando.

- Te carga los 2 combos producto y región, considerando las columnas que pusiste en la imagen.

- Puedes sumar por producto, por la combinación de producto y región y solamente por región.

- Te suma las ventas de la columna "Z"

- Ahora sí puse la parte para limpiar los textbox

Private Sub ComboBox1_Change()
'Por.Dante Amor
    SumarMeses
End Sub
'
Private Sub ComboBox2_Change()
'Por.Dante Amor
    SumarMeses
End Sub
Sub SumarMeses()
'Por.Dante
    Set h1 = Sheets("BaseDatos")
    limpiar
    '
    For i = 2 To Range("Z" & Rows.Count).End(xlUp).Row
        If ComboBox1 = "" Then pro = "*" Else pro = ComboBox1
        If ComboBox2 = "" Then reg = "*" Else reg = ComboBox2
        '
        If h1.Cells(i, "W") Like pro And _
           h1.Cells(i, "L") Like reg Then
            Select Case h1.Cells(i, "E")
                Case 1: TextBox1 = Val(TextBox1) + h1.Cells(i, "Z")
                Case 2: TextBox2 = Val(TextBox2) + h1.Cells(i, "Z")
                Case 3: TextBox3 = Val(TextBox3) + h1.Cells(i, "Z")
                Case 4: TextBox4 = Val(TextBox4) + h1.Cells(i, "Z")
                Case 5: TextBox5 = Val(TextBox5) + h1.Cells(i, "Z")
                Case 6: TextBox6 = Val(TextBox6) + h1.Cells(i, "Z")
                Case 7: TextBox7 = Val(TextBox7) + h1.Cells(i, "Z")
                Case 8: TextBox8 = Val(TextBox8) + h1.Cells(i, "Z")
                Case 9: TextBox9 = Val(TextBox9) + h1.Cells(i, "Z")
                Case 10: TextBox10 = Val(TextBox10) + h1.Cells(i, "Z")
                Case 11: TextBox11 = Val(TextBox11) + h1.Cells(i, "Z")
                Case 12: TextBox12 = Val(TextBox12) + h1.Cells(i, "Z")
            End Select
        End If
    Next
End Sub
'
Sub limpiar()
'Por.Dante Amor
    TextBox1 = ""
    TextBox2 = ""
    TextBox3 = ""
    TextBox4 = ""
    TextBox5 = ""
    TextBox6 = ""
    TextBox7 = ""
    TextBox8 = ""
    TextBox9 = ""
    TextBox10 = ""
    TextBox11 = ""
    TextBox12 = ""
End Sub
Private Sub UserForm_Activate()
'Por.Dante Amor
    Set h1 = Sheets("BaseDatos")
    For i = 2 To h1.Range("W" & Rows.Count).End(xlUp).Row
        agregar ComboBox1, h1.Cells(i, "W")
        agregar ComboBox2, h1.Cells(i, "L")
    Next
End Sub
'
Sub agregar(combo As ComboBox, dato As String)
'Por.Dante Amor
    For i = 0 To combo.ListCount - 1
        Select Case StrComp(combo.List(i), dato, vbTextCompare)
            Case 0: Exit Sub 'ya existe en el combo y ya no lo agrega
            Case 1: combo.AddItem dato, i: Exit Sub 'Es menor, lo agrega antes del comparado
        End Select
    Next
    combo.AddItem dato 'Es mayor lo agrega al final
End Sub

Saludos.Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas