¿Cómo filtrar una datos determinados con un "checkBox" y el resultado del filtrado aparezca en un "Combobox"?

Tengo un duda con la macro de Excel ya que estoy trabajando en intentar filtrar a través de un checkBox. Adjunto imagen para mejor referencia. Ejemplo

Como sale en la imagen, que al Marcar el CheckBox "PROTECTOR AUDITIVO" me filtre en la que esta seleccionada (RECARGA_DE_CASILLEROS) y en el ComboBox "Modelo" aparezca el modelo respectivo si no me doy a entender háganmelo saber por favor.

1 Respuesta

Respuesta
2

H o l a : Te anexo el código para cargar los datos en el combo

Private Sub CheckBox1_Click()
    Call CargarCombo(ComboBox1, CheckBox1, "PROTECTOR AUDITIVO")
End Sub
Private Sub CheckBox2_Click()
    Call CargarCombo(ComboBox2, CheckBox2, "LENTES DE SEGURIDAD")
End Sub
Private Sub CheckBox3_Click()
    Call CargarCombo(ComboBox3, CheckBox3, "CHALECO REFLEJANTE")
End Sub
Private Sub CheckBox4_Click()
    Call CargarCombo(ComboBox4, CheckBox4, "GUANTES")
End Sub
'
Sub CargarCombo(combo As ComboBox, check As Boolean, tipo As String)
'Por.Dante Amor
    combo.Clear
    If check Then
        Set h = Sheets("RECARGA_DE_CASILLEROS")
        For i = 3 To h.Range("C" & Rows.Count).End(xlUp).Row
            If UCase(h.Cells(i, "C")) = tipo Then
                combo.AddItem h.Cells(i, "D")
            End If
        Next
    End If
End Sub

Cambia los nombres de los checkbox y combobox por los nombres que tienen tus controles.


Observaciones: Si los datos, por ejemplo, del "protector auditivo", siempre se van a cargar en el combobox1, entonces no es necesario que presiones el checkbox; se pueden cargar los datos desde el inicio del formulario, de esa forma te ahorras el paso de presionar el checkbox y siempre verás en el combo los datos del "protector auditivo".

Yo lo pondría así:

Private Sub UserForm_Activate()
    Call CargarCombo(ComboBox1, "PROTECTOR AUDITIVO")
    Call CargarCombo(ComboBox2, "LENTES DE SEGURIDAD")
    Call CargarCombo(ComboBox3, "CHALECO REFLEJANTE")
    Call CargarCombo(ComboBox4, "GUANTES")
End Sub
Sub CargarCombo(combo As ComboBox, tipo As String)
'Por.Dante Amor
    Set h = Sheets("RECARGA_DE_CASILLEROS")
    For i = 3 To h.Range("C" & Rows.Count).End(xlUp).Row
        If UCase(h.Cells(i, "C")) = tipo Then
            combo.AddItem h.Cells(i, "D")
        End If
    Next
End Sub

Es una sugerencia.


'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas