¿Cómo guardar o conservar las selecciones realizadas en los cuadros de lista ActiveX en Excel?
Supongamos que ha creado varios cuadros de lista y ha hecho selecciones en ellos; sin embargo, todas esas selecciones desaparecen al cerrar y volver a abrir el libro. ¿Le gustaría conservar las selecciones realizadas en los cuadros de lista cada vez que cierre y vuelva a abrir el libro? El método descrito en este artículo puede ayudarle.
Guarde o conserve las selecciones de cuadros de lista ActiveX con código VBA en Excel
Guarde o conserve las selecciones de cuadros de lista ActiveX con código VBA en Excel
El siguiente código VBA le permite guardar o conservar las selecciones realizadas en los cuadros de lista ActiveX de Excel. Siga estos pasos:
1. En el libro que contiene los cuadros de lista ActiveX cuyas selecciones desea conservar, pulse simultáneamente las teclas Alt + F11 para abrir la ventana de Microsoft Visual Basic para Aplicaciones.
2. En la ventana de Microsoft Visual Basic para Aplicaciones, haga doble clic en EsteLibro en el panel izquierdo para abrir la ventana de código de EsteLibro Código. A continuación, copie el siguiente código VBA en dicha ventana.
Código VBA: Guarde las selecciones de cuadros de lista ActiveX en Excel
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim I As Long
Dim J As Long
Dim K As Long
Dim KK As Long
Dim xSheet As Worksheet
Dim xListBox As Object
On Error GoTo Label
Application.DisplayAlerts = False
Application.ScreenUpdating = False
K = 0
KK = 0
If Not Sheets("ListBox Data") Is Nothing Then
Sheets("ListBox Data").Delete
End If
Label:
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "ListBox Data"
Set xSheet = Sheets("ListBox Data")
For I = 1 To Sheets.Count
For Each xListBox In Sheets(I).OLEObjects
If xListBox.Name Like "ListBox*" Then
With xListBox.Object
For J = 0 To .ListCount - 1
If .Selected(J) Then
xSheet.Range("A1").Offset(K, KK).Value = "True"
Else
xSheet.Range("A1").Offset(K, KK).Value = "False"
End If
K = K + 1
Next
End With
K = 0
KK = KK + 1
End If
Next
Next
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Private Sub Workbook_Open()
Dim I As Long
Dim J As Long
Dim KK As Long
Dim xRg As Range
Dim xCell As Range
Dim xListBox As Object
Application.DisplayAlerts = False
Application.ScreenUpdating = False
KK = 0
For I = 1 To Sheets.Count - 1
For Each xListBox In Sheets(I).OLEObjects
If xListBox.Name Like "ListBox*" Then
With xListBox.Object
Set xRg = Intersect(Sheets("ListBox Data").Range("A1").Offset(0, KK).EntireColumn, Sheets("ListBox Data").UsedRange)
For J = 1 To .ListCount
Set xCell = xRg(J)
If xCell.Value = "True" Then
.Selected(J - 1) = True
End If
Next
KK = KK + 1
End With
End If
Next
Next
Sheets("ListBox Data").Delete
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub 
3. Pulse las teclas Alt + Q para cerrar la ventana de Microsoft Visual Basic para Aplicaciones.
4. Ahora debe guardar el libro como un libro habilitado para macros de Excel. Haga clic en Archivo > Guardar como > Examinar.

5. En el cuadro de diálogo Guardar como, elija la ubicación donde desea guardar el libro, cámbiele el nombre si es necesario, seleccione Libro habilitado para macros de Excel en la lista desplegable Especificar formato de guardado y, por último, haga clic en el botón Guardar. Vea la captura de pantalla:

Guarde el libro cada vez que actualice los cuadros de lista para conservar todas las selecciones anteriores al volver a abrirlo.
Nota: Al guardar el libro, se creará automáticamente una hoja de cálculo llamada «Datos de cuadro de lista» al final de todas las hojas del libro. Puede ignorar esta hoja, ya que desaparecerá automáticamente al cerrar el libro.
Las mejores herramientas de productividad para Office
Potencie sus habilidades en Excel con Kutools para Excel y experimente una eficiencia como nunca antes.Kutools para Excel ofrece más de 300 funciones avanzadas para aumentar su productividad y Ahorrar tiempo.Haga clic aquí para obtener la función que más necesita...
Office Tab aporta una interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil
- Active la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abra y cree varios documentos en nuevas pestañas dentro de la misma ventana, en lugar de hacerlo en ventanas separadas.
- ¡Aumente su productividad en un 50 % y elimine cientos de clics del ratón cada día!
Todos los complementos de Kutools en un solo instalador.
Kutools for Office es la suite que incluye complementos para Excel, Word, Outlook y PowerPoint, además de Office Tab Pro, ideal para equipos que trabajan en distintas aplicaciones de Office.
- Suite integral— complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
- Un instalador, una licencia— configuración en minutos (compatible con MSI)
- Rendimiento mejorado en conjunto— productividad optimizada en todas las aplicaciones de Office
- Prueba gratuita de 30 días con todas las funciones— sin registro ni tarjeta de crédito
- La mejor relación calidad-precio— ahorre frente a la compra individual de complementos