Listbox sin duplicados en un userform vba excel
Resuelto
wire less
Mensajes publicados
247
Fecha de registro
Estado
Miembro
Última intervención
-
f894009 Mensajes publicados 17417 Fecha de registro Estado Miembro Última intervención -
f894009 Mensajes publicados 17417 Fecha de registro Estado Miembro Última intervención -
Buen tema clásico... lo siento, he recorrido los foros pero aún no consigo crear mi listbox sin duplicados!!
Mi script... tengo un combobox1 y deseo que, cuando haga clic en él, llene mi listbox. Mi listbox se llena... ¡sin tener dos veces el mismo elemento!!
Así que hice un:
Eso es todo... simplísimo... (bueno, eso es lo que encontré en los foros... no fue mi idea... añado los elementos de mi combobox en una "Colección", (aparentemente las colecciones no aceptan duplicados), luego transfiero mi colección a la listbox.
Y bien... adivinen... no funciona :'-(
¿Alguien tendría una idea o una corrección... o una solución diferente? Gracias.
Mi script... tengo un combobox1 y deseo que, cuando haga clic en él, llene mi listbox. Mi listbox se llena... ¡sin tener dos veces el mismo elemento!!
Así que hice un:
Private Sub ComboBox1_Click()
Dim Unique As New Collection
Dim Valeur As Range
Unique.Add ComboBox1.Value
For Each Valeur In Unique
Me.ListBox1.AddItem Valeur
Next Valeur
Eso es todo... simplísimo... (bueno, eso es lo que encontré en los foros... no fue mi idea... añado los elementos de mi combobox en una "Colección", (aparentemente las colecciones no aceptan duplicados), luego transfiero mi colección a la listbox.
Y bien... adivinen... no funciona :'-(
¿Alguien tendría una idea o una corrección... o una solución diferente? Gracias.
3 respuestas
-
He hecho algo similar a ti para mi aplicación en C# y para evitar duplicados debes probar los elementos de ListBox, en resumen, pruebas el anterior en relación al siguiente y si son diferentes lo dejas dentro, de lo contrario eliminas una de las dos ocurrencias.
--
Bien a ti,
Pr3s. -
Hola a los dos,
Dim Unique As New Collection Dim i As Integer Dim Valeur As Variant Private Sub ComboBox1_Click() On Error Resume Next Unique.Add Item:=ComboBox1.Text, Key:=CStr(ComboBox1.ListIndex) On Error GoTo 0 'raz listbox ListBox1.Clear 'Bucle sobre el contenido de la colección para alimentar la ListBox For Each Valeur In Unique Me.ListBox1.AddItem Valeur Next Valeur End Sub
-
Hola señores,
Un ejemplo sin colección, solo un pequeño tratamiento de errores:Private Sub ComboBox1_Click() On Error GoTo fin Me.ListBox1 = ComboBox1 If ListBox1.ListIndex = -1 Then GoTo fin Exit Sub fin: Me.ListBox1.AddItem ComboBox1 End Sub
--
🎼 Atentamente,
Franck 🎶