Como guardar ou manter as seleções nas caixas de listagem ActiveX no Excel?
Imagine que criou várias caixas de listagem e fez as suas seleções — mas, ao fechar e reabrir o livro, todas essas seleções desaparecem. Gostaria de manter sempre as opções escolhidas nas caixas de listagem, mesmo após fechar e reabrir o livro? O método apresentado neste artigo pode ajudá-lo.
Guardar ou manter as seleções das caixas de listagem ActiveX com código VBA no Excel
Guardar ou manter as seleções das caixas de listagem ActiveX com código VBA no Excel
O código VBA abaixo pode ajudá-lo a guardar ou manter as seleções das caixas de listagem ActiveX no Excel. Siga estes passos:
1. No livro que contém as caixas de listagem ActiveX cujas seleções pretende manter, prima simultaneamente as teclas Alt + F11 para abrir a janela do Microsoft Visual Basic for Applications.
2. Na janela do Microsoft Visual Basic for Applications, faça duplo clique em ThisWorkbook no painel esquerdo para abrir a janela de código ThisWorkbook Code. Em seguida, copie o seguinte código VBA para a janela de código.
Código VBA: Guardar seleções das caixas de listagem ActiveX no 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. Prima as teclas Alt + Q para fechar a janela do Microsoft Visual Basic for Applications.
4. Agora, precisa de guardar o livro como um livro do Excel com macros ativadas. Clique em Ficheiro > Guardar Como > Procurar.

5. Na caixa de diálogo Guardar Como, escolha onde guardar o livro, renomeie-o conforme necessário, selecione Livro do Excel com Macros Ativadas na lista pendente Especificar Formato de Salvamento e, por fim, clique no botão Guardar. Veja a imagem:

Guarde o livro sempre que atualizar as caixas de listagem para que todas as seleções anteriores sejam mantidas após reabrir o ficheiro.
Nota: Ao guardar o livro, será criada automaticamente uma folha de cálculo com o nome «ListBox Data» no final de todas as folhas do seu livro. Ignore esta folha — ela desaparecerá automaticamente assim que o livro for fechado.
As Melhores Ferramentas de Produtividade para o Office
Potencie as suas competências no Excel com Kutools para Excel e experimente uma eficiência como nunca antes.Kutools para Excel Oferece mais de 300 funcionalidades avançadas para impulsionar a produtividade e Economizar Tempo.Clique aqui para obter a funcionalidade de que mais precisa...
Office Tab Traz uma interface com separadores para o Office e torna o seu trabalho muito mais fácil
- Ative a edição e leitura com separadores no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novos separadores da mesma janela, em vez de em janelas separadas.
- Aumente a sua produtividade em 50 % e elimine centenas de cliques do rato todos os dias!
Todos os suplementos Kutools — num único instalador.
Kutools for Office reúne suplementos para Excel, Word, Outlook e PowerPoint, além do Office Tab Pro, sendo a solução ideal para equipas que trabalham em várias aplicações do Office.
- Pacote tudo-em-um— suplementos para Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Um instalador, uma licença— configuração em minutos (pronto para MSI)
- Funciona melhor em conjunto— produtividade simplificada em todas as aplicações do Office
- Teste gratuito de 30 dias com todas as funcionalidades— sem registo, sem cartão de crédito
- Melhor relação qualidade-preço— poupe face à compra individual dos suplementos