Skip to main content

Como salvar ou manter as seleções de caixas de listagem ActiveX no Excel?

Author: Siluvia Last Modified: 2025-08-06

Suponha que você tenha criado algumas caixas de listagem e feito seleções nelas, no entanto, todas as seleções dessas caixas de listagem desaparecem ao fechar e reabrir a pasta de trabalho. Você deseja manter as seleções feitas nas caixas de listagem sempre que fechar e reabrir a pasta de trabalho? O método neste artigo pode ajudá-lo.

Salvar ou manter seleções de caixas de listagem ActiveX com código VBA no Excel


Salvar ou manter seleções de caixas de listagem ActiveX com código VBA no Excel

O código VBA abaixo pode ajudá-lo a salvar ou manter as seleções das caixas de listagem ActiveX no Excel. Por favor, siga os passos abaixo.

1. Na pasta de trabalho que contém as caixas de listagem ActiveX cujas seleções você deseja manter, pressione simultaneamente as teclas Alt + F11 para abrir a janela do Microsoft Visual Basic for Applications.

2. Na janela do Microsoft Visual Basic for Applications, clique duas vezes em ThisWorkbook no painel esquerdo para abrir a janela de ThisWorkbook Código. Em seguida, copie o seguinte código VBA na janela de código.

Código VBA: Salvar seleções de 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

a screenshot showing how to use the VBA code

3. Pressione as teclas Alt + Q para fechar a janela do Microsoft Visual Basic for Applications.

4. Agora você precisa salvar a pasta de trabalho como uma Pasta de Trabalho Habilitada para Macro do Excel. Por favor, clique em Arquivo > Salvar Como > Procurar.

a screenshot of opening the Save As dialog box

5. Na caixa de diálogo Salvar Como, selecione uma pasta para salvar a pasta de trabalho, renomeie-a conforme necessário, selecione Pasta de Trabalho Habilitada para Macro do Excel na lista suspensa Especificar Formato de Salvamento e, finalmente, clique no botão Salvar. Veja a captura de tela:

a screenshot of saving the workbook as an Excel Macro-Enabled Workbook

Salve a pasta de trabalho toda vez que atualizar as caixas de listagem. Então, todas as seleções anteriores serão mantidas nas caixas de listagem após reabrir a pasta de trabalho.

Observação: Ao salvar a pasta de trabalho, uma planilha chamada “ListBox Data” será criada automaticamente no final de todas as planilhas da sua pasta de trabalho; ignore esta planilha porque ela desaparecerá automaticamente quando a pasta de trabalho for fechada.


Melhores Ferramentas de Produtividade para Office

🤖 Kutools AI Aide: Revolucione a análise de dados com base em: Execução Inteligente|Gerar Código |Criar Fórmulas Personalizadas|Analisar Dados e Gerar Gráficos |Acionar Funções Aprimoradas
Recursos populares: Encontrar, Destacar ou Marcar Duplicados|Excluir Linhas em Branco|Combinar Colunas ou Células sem perder dados| Arredondar...
Super PROC: PROC com múltiplos critérios|PROC com múltiplos valores|Procura em várias planilhas|Correspondência Fuzzy....
Lista Suspensa Avançada: Crie rapidamente Lista Suspensa|Lista Suspensa Dependente|Lista Suspensa com Múltipla Seleção....
Gerenciador de Colunas: Adicionar um número específico de colunas |Mover Colunas |Alternar o Estado de Visibilidade de Colunas Ocultas| Comparar Intervalo & Colunas...
Recursos em Destaque: Grade de foco|Visualização de Design|Barra de fórmulas aprimorada|Gerenciador de Pasta de Trabalho & Planilha|Biblioteca de AutoTexto|Selecionador de Data|Mesclar Dados |Criptografar/Descriptografar Células|Enviar Email por Lista|Super Filtro|Filtro Especial (filtrar negrito/itálico/tachado...)...
Top15 Conjuntos de Ferramentas:12 Ferramentas de Texto (Adicionar Texto, Excluir Caracteres Específicos, ... ) |Mais de50 Tipos de Gráficos (Gráfico de Gantt, ... ) |Mais de40 Fórmulas Práticas (Calcular a idade com base na data de nascimento, ... ) |19 Ferramentas de Inserção (Inserir Código QR, Inserir Imagem a partir do Caminho, ... ) |12 Ferramentas de Conversão (Converter em Palavras, Conversão de Moeda, ... ) |7 Ferramentas de Mesclar & Dividir (Mesclar Linhas Avançado, Dividir Células, ... ) |... e muito mais
Use o Kutools no idioma de sua preferência – compatível com Inglês, Espanhol, Alemão, Francês, Chinês e mais de40 outros!

Impulsione suas habilidades no Excel com Kutools para Excel e experimente uma eficiência sem igual. Kutools para Excel oferece mais de300 recursos avançados para aumentar sua produtividade e economizar tempo.Clique aqui para obter o recurso que você mais precisa...


Office Tab traz interface de abas para o Office e facilita muito seu trabalho

  • Habilite a edição e leitura com abas no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas abas da mesma janela, em vez de novas janelas.
  • Aumente sua produtividade em50% e reduza centenas de cliques do mouse todos os dias!