Omitir espacios en blanco en un Combobox ligado a una tabla

Tengo una pequeña duda, ¿cómo hago para que un combobox que esta ligado a una tabla omita los espacios en blanco que esta contenga?, lo que sucede tengo un formulario con un combobox y este esta ligado a un lista con formato de tabla, esa lista tiene unos espacios en blanco (obligatorios) y yo no quiero que estos aparezcan en el combobox, así que me gustaría saber si hay alguna forma de que el combox los omita

2 Respuestas

Respuesta
1

[Hola

Si usas "RowSource" para llenar el "Combobox" no podrás evitar las celdas en blanco, debes usar alguna método como "AddItem". Si nos muestras y/o describes como están los datos exactamente, será más fácil recomendarte que y/o como hacer.

Saludos]

Abraham Valencia

Hola Abraham Valencia, primero que todo gracias por responder y tienes razón debí adjuntar algo que sirviera como apoyo, así que acá te adjunto la tabla que uso como referencia y el código del combobox
Está es la tabla con los datos


Y este es el código del combobox

For i = 1 To Range("Tipo_Und").Rows.Count
        cbxund.AddItem Range("Tipo_Und").Cells(i, 1)
Next i

Debo aclarar que el código no esta en el Combobox como tal, si no en el Form

[Hola

Siguiendo con tu misma idea, prueba así:

For i = 1 To Range("Tipo_Und").Rows.Count
    If Cells(i, 1) <> "" Then
        cbxund.AddItem Range("Tipo_Und").Cells(i, 1)
    End If
Next i

Comentas

Abraham Valencia

Debo hacerle alguna modificación a la propiedad Range?, ya que ahora no me muestra ningún elemento de la lista, como si estuviera vacía 

[Hola

Como no se veían que columnas y filas era, asumí algunas pero, cámbialo por algo que se adapte a cualquier rango mejor:

Dim Celda As Range
Dim Rango As String
Rango = Range("Tipo_Und").Address
For Each Celda In ActiveSheet.Range(Rango)
    If Celda.Value <> "" Then
        cbxund.AddItem Celda.Value
    End If
Next Celda

Eso te funcionará sea cual sea el rango que tienes nombrado.

Saludos]

Abraham Valencia

Respuesta
1

Este ejemplo te puede aportar algo más

https://youtu.be/sWrUt9kItsg

También puedes evaluar si la celda es empty al momento de agregar al combobox, no lo agregue con IF

https://youtu.be/ut0Ss2vPsTE 

Unas de las tantas formas de rellenar un combobox es esta, se debe tener en cuenta que tiene filas vacías entre medio por lo que comentas, entones tal y cual esta planteada no sirve porque al encontrar la primer fila vacía se detiene la macro, para saltar puedes usar un bucle for

While ActiveCell <> Empty

ComboBox1.AddItem ActiveCell
ActiveCell.Offset(1, 0).Select
Wend

Asi deberias usarlo, supondiendo que los datos están en columna a partir de fila 2

For x = 2 to 1000

If cells(x, "A") <> empty then ComboBox1.AddItem cells(x, "A")

Next x

¡Gracias! En definitiva le echare un vistazo a toda la información, y así mejorar el código como sea posible, si tengo algún problema o duda te estaré informando

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas