Note: The other languages of the website are Google-translated. Back to English

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

Supondo que você tenha criado algumas caixas de listagem e feito seleções nas caixas de listagem, no entanto, todas as seleções dessas caixas de listagem desaparecem quando fecha e reabre 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 as seleções de caixas de listagem ActiveX com código VBA no Excel


Insira ou exclua facilmente várias caixas de seleção em massa no Excel:

A Caixas de seleção de inserção de lote utilitários de Kutools for Excel pode ajudá-lo a inserir rapidamente várias caixas de seleção no intervalo selecionado de uma vez. E você pode excluir todas as caixas de seleção no intervalo selecionado com o Caixas de seleção para exclusão em lote. Veja a captura de tela:

Kutools for Excel: com mais de 200 suplementos úteis do Excel, grátis para testar sem limitação em 60 dias. Baixe e teste grátis agora!

Guia Office Habilite a edição e navegação com guias no Office e torne seu trabalho muito mais fácil ...
O Kutools for Excel resolve a maioria dos seus problemas e aumenta sua produtividade em 80%
  • Reutilizar qualquer coisa: Adicione as fórmulas, gráficos e tudo mais usados ​​ou complexos aos seus favoritos e reutilize-os rapidamente no futuro.
  • Mais de 20 recursos de texto: Extrair número da string de texto; Extraia ou remova parte dos textos; Converta números e moedas para palavras em inglês.
  • Ferramentas de mesclagem: Várias pastas de trabalho e planilhas em um; Mesclar várias células / linhas / colunas sem perder dados; Mesclar linhas duplicadas e soma.
  • Ferramentas de divisão: Divida os dados em várias folhas com base no valor; Uma pasta de trabalho para vários arquivos do Excel, PDF ou CSV; Uma coluna para várias colunas.
  • Colar Ignorando Linhas ocultas / filtradas; Contagem e soma por cor de fundo; Envie emails personalizados para vários destinatários em massa.
  • Super Filtro: Crie esquemas de filtro avançados e aplique a qualquer planilha; tipo por semana, dia, frequência e muito mais; filtros por negrito, fórmulas, comentário ...
  • Mais de 300 recursos poderosos; Funciona com Office 2007-2019 e 365; Suporta todos os idiomas; Fácil implantação em sua empresa ou organização.

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


O código VBA abaixo pode ajudá-lo a salvar ou reter seleções nas caixas de listagem ActiveX do Excel. Faça o seguinte.

1. Na pasta de trabalho que contém as caixas de lista ActiveX que você deseja manter as seleções, pressione o botão outro + F11 simultaneamente para abrir o Microsoft Visual Basic para Aplicações janela.

2. No Microsoft Visual Basic para Aplicações janela, clique duas vezes Esta pasta de trabalho no painel esquerdo para abrir o Esta pasta de trabalho Código janela. Em seguida, copie o seguinte código VBA na janela de código.

Código VBA: Salve as 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

3. Press the Alt + Q keys to close the Microsoft Visual Basic for Applications window.

4. Now you need to save the workbook as an Excel Macro-enabled workbook. Please click File > Save As > Browse.

5. In the Save As dialog box, select a folder to save the workbook, rename it as you need, select Excel Macro-Enabled Workbook in the Save as type dropdown list, and finally click the Save button. See screenshot:

Please save the workbook every time when you update the list boxes. Then all previous selections will be kept in the list boxes after reopening the workbook.

Note: When saving the workbook, a worksheet named “ListBox Data” will be created automatically at the end of all worksheets of your workbook, please ignore this worksheet because it will disappear automatically when the workbook is closed.


The Best Office Productivity Tools

Kutools for Excel Solves Most of Your Problems, and Increases Your Productivity by 80%

  • Reuse: Quickly insert complex formulas, charts and anything that you have used before; Encrypt Cells with password; Create Mailing List and send emails...
  • Super Formula Bar (easily edit multiple lines of text and formula); Reading Layout (easily read and edit large numbers of cells); Paste to Filtered Range...
  • Merge Cells/Rows/Columns without losing Data; Split Cells Content; Combine Duplicate Rows/Columns... Prevent Duplicate Cells; Compare Ranges...
  • Select Duplicate or Unique Rows; Select Blank Rows (all cells are empty); Super Find and Fuzzy Find in Many Workbooks; Random Select...
  • Exact Copy Multiple Cells without changing formula reference; Auto Create References to Multiple Sheets; Insert Bullets, Check Boxes and more...
  • Extract Text, Add Text, Remove by Position, Remove Space; Create and Print Paging Subtotals; Convert Between Cells Content and Comments...
  • Super Filter (save and apply filter schemes to other sheets); Advanced Sort by month/week/day, frequency and more; Special Filter by bold, italic...
  • Combine Workbooks and WorkSheets; Merge Tables based on key columns; Split Data into Multiple Sheets; Batch Convert xls, xlsx and PDF...
  • More than 300 powerful features. Supports Office/Excel 2007-2019 and 365. Supports all languages. Easy deploying in your enterprise or organization. Full features 30-day free trial. 60-day money back guarantee.
kte tab 201905

Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier

  • Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
  • Open and create multiple documents in new tabs of the same window, rather than in new windows.
  • Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!
officetab bottom
Comments (1)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hi - Is there any way to prevent the "ListBox Data" tab from opening when you save the file? We're trying to send this to users but every time I save it opens the ListBox Data tab and then I can't save it with the primary tab open - which is confusing for users.
There are no comments posted here yet
Leave your comments
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations