Palabras clave: listbox, recorrer, multiselección
Autor: Xavi
Extraído de: Harto de buscarlo cuando lo necesito, lo cuelgo aquí
Pregunta
¿Cómo puedo recorrer los ítems seleccionados de un cuadro de lista de selección múltiple?
Respuesta
Habitualmente tratamos con los ListBox en modo de selección simple pero, cuando se trata de un ListBox de multiselección, el modo de obtener la lista de valores seleccionados es ligeramente distinto.
Lo que haremos será imaginar un ListBox de 2 columnas dónde la primera está oculta (es el índice) y la segunda es la que muestra la descripción.
Deseamos obtener la lista de índices que se han seleccionado (da lo mismo que sea selección extendida o no) para almacenarlos en una cadena de texto que utilizaremos, por ejemplo, en una cláusula IN de una SQL.
Dim varitem
Dim strTmp As String
Dim strIN As String
For Each varitem In Me!cboEjemplo.ItemsSelected
strTmp = strTmp & ", " & Me!cboEjemplo.Column(0, varitem)
Next
strIN = "IN (" & Mid(strTmp, 3) & ")"