Mostar Combobox con celdas filtradas

Les cuento que soy nuevo en crear formularios y tengo el siguiente problema.

Tengo una hoja excel con datos 1 al 300 del cual realizo un filtro (columna F) y después de eso solo muestra 10 pero al ejecutar el formulario y listar el combobox1 del cual me muestra los datos de la celda C3 me sigue mostrando los 300 datos y no los 10 del filtro.

¿Qué debo realizar para que muestre solo los datos filtrados?

Tengo el siguiente código:

----------------------------------------------------------------

Private Sub ComboBox1_Change()
If Not ComboBox1.ListIndex = -1 Then
TextBox1 = ComboBox1.List(ComboBox1.ListIndex, 1)
TextBox3 = ComboBox1.List(ComboBox1.ListIndex, 3)
TextBox4 = ComboBox1.List(ComboBox1.ListIndex, 4)
TextBox5 = ComboBox1.List(ComboBox1.ListIndex, 5)
TextBox6 = ComboBox1.List(ComboBox1.ListIndex, 6)
TextBox7 = ComboBox1.List(ComboBox1.ListIndex, 7)
TextBox8 = ComboBox1.List(ComboBox1.ListIndex, 8)
TextBox9 = ComboBox1.List(ComboBox1.ListIndex, 9 + 2)
TextBox10 = ComboBox1.List(ComboBox1.ListIndex, 10)
TextBox11 = ComboBox1.List(ComboBox1.ListIndex, 11 + 1)
TextBox12 = ComboBox1.List(ComboBox1.ListIndex, 12 + 1)
TextBox13 = ComboBox1.List(ComboBox1.ListIndex, 13 + 4)
Else
TextBox1 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
TextBox6 = ""
TextBox7 = ""
TextBox8 = ""
TextBox9 = ""
TextBox10 = ""
TextBox11 = ""
TextBox12 = ""
TextBox13 = ""
End If
End Sub

----------------------------------------------------------------
Private Sub UserForm_Initialize()

ComboBox1.RowSource = "'" & Hoja3.Name & "'!C3:T" & Hoja3.Range("C" & Rows.Count).End(xlUp).Row

3 respuestas

Respuesta
1

You can accomplish a few things by doing the following:
Choose one of the cells from the range.
Choose Filters from the Data menu ( octordle )
Choose the arrow next to the column heading.
Select either the Text Filter or the Number Filter, and then decide the comparison you want to use, such as Between.
Enter the necessary filter criteria, then click OK.

Respuesta
Respuesta

Para mostrar en el ComboBox solo los datos filtrados de tu hoja de Excel, necesitas ajustar el rango de origen de datos del ComboBox después de aplicar el filtro. Aquí tienes una forma de hacerlo:

1. Antes de asignar el origen de datos al ComboBox, debes aplicar el filtro a tus datos en la hoja de Excel. Puedes hacerlo utilizando el método Autofilter de la columna F. Por ejemplo:

Hoja3. Range("A2:T300").AutoFilter Field:=6, Criteria1:="ValorFiltro"

Reemplaza "ValorFiltro" con el valor que utilizas para filtrar tus datos. Esto filtrará los datos en la hoja de Excel y mostrará solo las filas que cumplan con el criterio especificado en la columna F.

2. Luego, puedes ajustar el origen de datos del ComboBox para que muestre solo las celdas visibles después de aplicar el filtro. Puedes hacerlo utilizando el método SpecialCells con la opción xlCellTypeVisible. A continuación, puedes asignar este rango al RowSource del ComboBox. Aquí tienes el código actualizado:

Private Sub UserForm_Initialize()
    Hoja3.Range("A2:T300").AutoFilter Field:=6, Criteria1:="ValorFiltro"
    Dim rngVisible As Range
    On Error Resume Next
    Set rngVisible = Hoja3.Range("C3:C" & Hoja3.Range("C" & Rows.Count).End(xlUp).Row).SpecialCells(xlCellTypeVisible)
    On Error GoTo 0
    If Not rngVisible Is Nothing Then
        ComboBox1.RowSource = rngVisible.Address
    Else
        ComboBox1.RowSource = ""
    End If
End Sub

Recuerda reemplazar "ValorFiltro" por el valor que utilizas para filtrar tus datos. Con este código, el ComboBox solo mostrará las celdas visibles después de aplicar el filtro en la columna F.

Espero que esto te ayude a lograr el resultado deseado. Si tienes alguna pregunta adicional, no dudes en preguntar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas