
Tengo una tabla en Excel donde puedo seleccionar varios elementos de una lista desplegable en una celda.
Ahora, usando mi macro tengo que seleccionar todas las opciones por separado y se agregan a una celda una por una.
¿Existe la posibilidad de escribir la macro que agrega casillas de verificación a la lista desplegable, para poder marcar los elementos que quiero agregar y se agregarán simultáneamente?
Respuesta1
Sí, puede agregar un cuadro de lista de formulario y permitir selecciones múltiples.Chequea aquípara soporte de EM.
VBA - comprobareste hilo de desbordamiento de pila
Respuesta2
Ok, usé este código para el cuadro de lista:
Dim lngItem As Long
Const strSep = ", " 'delimiter
Private Sub UserForm_Initialize()
With ListBox1
.RowSource = "=Sheet1!A2:A12"
For lngItem = 0 To ListBox1.ListCount - 1
.Selected(lngItem) = InStr(1, strSep & ActiveCell.Value & strSep, strSep & .List(lngItem, 0) & strSep)
Next lngItem
End With
End Sub
Private Sub CommandButton1_Click()
Dim strItems As String
With ListBox1
For lngItem = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(lngItem) Then
strItems = strItems & strSep & ListBox1.List(lngItem, 0)
End If
Next lngItem
End With
With ActiveCell
.NumberFormat = "@"
.Value = Replace(strItems, strSep, "", 1, 1)
End With
Unload Me
End Sub
y este para la selección de columnas:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column <> 3 Or Target.Row = 1 Then Exit Sub
UserForm1.Show
Cancel = True
End Sub
Funciona muy bien, pero me gustaría cambiar una cosa.
Por el momento, el cuadro de lista aparece después de hacer doble clic en la celda, ¿existe la posibilidad de hacerlo con solo un clic? ¿También se puede cambiar para que el cuadro de lista siempre aparezca debajo de la celda seleccionada?
Respuesta3
Si miras la imagen adjunta, sabrás que así es como se ve la solución perfecta. Usando casillas de verificación dentro de cuadros de lista.
Descarga el código: http://www.vlsiip.com/exceltips.html