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