KutoolsforOffice — Uma solução, cinco ferramentas poderosas.Fazer mais com menos esforço.

Como mover rapidamente itens entre duas caixas de listagem no Excel?

AutorSun Data de Modificação

Já alguma vez precisou de mover itens de uma caixa de listagem para outra, conforme a sua necessidade, tal como ilustrado na imagem abaixo? Aqui explico-lhe como realizar esta operação no Excel.

uma captura de ecrã que mostra as caixas de lista antes de mover os itensuma captura de ecrã de uma setauma captura de ecrã que mostra as caixas de lista após mover os itens

Mover itens entre caixas de listagem


Mover itens entre caixas de listagem

Não existe uma função incorporada para o ajudar a concluir esta tarefa, mas tenho um código VBA que pode prestar esse favor.

1. Em primeiro lugar, tem de criar uma lista de dados que será apresentada como os itens nas caixas de listagem, numa nova folha com o nome Admin_Lists.

uma captura de ecrã dos dados de origem

2. Em seguida, selecione esses dados e vá até à caixa Nome para lhes atribuir o nome ItemList. Veja a imagem:

uma captura de ecrã da nomeação dos dados de origem na caixa Nome

3. Depois, numa folha que irá conter as duas caixas de listagem, clique em Programador > Inserir > Caixa de Listagem (Controlo ActiveX) e desenhe duas caixas de listagem. Veja a imagem:

uma captura de ecrã da seleção do controlo Caixa de Lista no separador Programadoruma captura de ecrã da seta direitauma captura de ecrã que mostra duas caixas de lista criadas

Se o separador Programador estiver oculto no seu Friso, Como mostrar/exibir o separador Programador no Excel 2007/2010/2013 Friso? este artigo indica-lhe como exibi-lo.

4. Em seguida, clique em Programador > Inserir > Botão de Comando (Controlo ActiveX) e desenhe quatro botões entre as duas caixas de listagem. Veja a imagem:

uma captura de ecrã da seleção do controlo Botão de Comandouma captura de ecrã de uma seta direita 1uma captura de ecrã que mostra os botões de comando criados

Agora, renomeie os quatro botões de comando para “Novo Nome”.

5. Selecione o primeiro botão de comando, clique em Propriedades e, no painel Propriedades, atribua-lhe o nome BTN_moveAllRight e insira >> na caixa de texto junto a Legenda. Veja a imagem:

uma captura de ecrã que mostra como alterar as propriedades do botão de comando

6. Repita o passo 5 para renomear os últimos três botões de comando com os nomes indicados abaixo e adicione também as setas correspondentes nas legendas. Consulte a imagem:

BTN_MoveSelectedRight

BTN_moveAllLeft

BTN_MoveSelectedLeft

uma captura de ecrã do segundo botão de comando após alteração das propriedadesuma captura de ecrã do terceiro botão de comando após alteração das propriedadesuma captura de ecrã do quarto botão de comando após alteração das propriedades

7. Clique com o botão direito do rato no nome da folha que contém as caixas de listagem e os botões de comando e selecione Ver Código no menu de contexto. Veja a imagem:

uma captura de ecrã da abertura do editor de código VBA

8. Copie e cole o código macro abaixo no script do Módulo e, em seguida, guarde o código e feche a janela do Microsoft Visual Basic for Applications. Veja a imagem

VBA: Mover itens entre duas caixas de listagem

Private Sub Worksheet_Activate()
'UpdatebyExtendoffice20171117
    Dim xCell As Range
    Dim xRg As Range
    Set xRg = Sheets("Admin_Lists").Range("ItemList")
    Me.ListBox1.Clear
    Me.ListBox2.Clear
    With Me.ListBox1
        .LinkedCell = ""
        .ListFillRange = ""
        For Each xCell In xRg
            If xCell <> "" Then
                .AddItem xCell.Value
            End If
        Next xCell
    End With
    Me.ListBox1.MultiSelect = fmMultiSelectMulti
    Me.ListBox2.MultiSelect = fmMultiSelectMulti
End Sub

Private Sub BTN_MoveSelectedLeft_Click()
    Call moveSigle(Me.ListBox2, Me.ListBox1)
End Sub

Private Sub BTN_MoveSelectedRight_Click()
    Call moveSigle(Me.ListBox1, Me.ListBox2)
End Sub

Private Sub BTN_moveAllLeft_Click()
    Call moveAll(Me.ListBox2, Me.ListBox1)
End Sub

Private Sub BTN_moveAllRight_Click()
    Call moveAll(Me.ListBox1, Me.ListBox2)
End Sub

Sub moveAll(xListBox1 As Object, xListBox2 As Object)
    Dim I As Long
    For I = 0 To xListBox1.ListCount - 1
        xListBox2.AddItem xListBox1.List(I)
    Next I
    xListBox1.Clear
End Sub

Sub moveSigle(xListBox1 As Object, xListBox2 As Object)
    Dim I As Long
    For I = 0 To xListBox1.ListCount - 1
        If I = xListBox1.ListCount Then Exit Sub
        If xListBox1.Selected(I) = True Then
            xListBox2.AddItem xListBox1.List(I)
            xListBox1.RemoveItem I
            I = I - 1
        End If
    Next
End Sub

uma captura de ecrã que mostra como utilizar o código VBA

9. Em seguida, vá para outra folha e regresse à folha que contém as caixas de listagem. Agora verá que os dados da lista foram carregados na primeira caixa de listagem. Clique nos botões de comando para mover os itens entre as duas caixas.

uma captura de ecrã que mostra os dados de origem numa caixa de lista após executar o código VBA

Mover seleção

uma captura de ecrã da movimentação de itens de uma caixa de lista para outra, um a umuma captura de ecrã da setauma captura de ecrã que mostra dois itens movidos para a caixa de lista da direita

Mover tudo

uma captura de ecrã que indica qual o botão de comando que pode ser utilizado para mover todos os itens de uma lista para outra em simultâneouma captura de ecrã da seta 2uma captura de ecrã que mostra todos os itens movidos de uma caixa de lista para outra em simultâneo

As Melhores Ferramentas de Produtividade para o Office

🤖KUTOOLS AI Assistente: Revolucione o Análise de Dados com base em:Execução Inteligente   |  Gerar Código|  Criar fórmulas personalizadas  |  Analisar Dados e Gerar Gráficos|  Invocar Funções Aprimoradas
Funcionalidades Populares:Localizar, Destacar ou Marcar Duplicatas   |  Excluir linhas em branco   |  Combinar Colunas ou Células sem Perder Dados   |   Arredondamento sem usar fórmula...
Super PROC:VLookup com Múltiplos Critérios  |  VLookup com Múltiplos Valores  |   VLookup em Múltiplas Folhas   |   Correspondência Fuzzy....
Lista Suspensa Avançada:Criar Rapidamente Lista de Seleção   |  Lista de Seleção Dependente   |  Lista de Seleção com Múltipla Escolha....
Gestor de Colunas:Adicionar um Número Específico de Colunas|Mover Colunas|Alternar Estado de Visibilidade de Colunas Ocultas|Comparar Intervalos e Colunas...
Funcionalidades em Destaque:Grade de foco   |  Visualização de Design   |Barra de fórmulas aprimorada   | Gestor de Pastas de Trabalho e Folhas   |  Biblioteca de Recursos(Texto Automático)|  Seleção de Data   |  Consolidar Planilhas  |  Encriptar/Descriptografar Células   | Enviar Emails por Lista   |  Super Filtro   |   Filtro Especial(Filtrar Células com Fonte em Negrito/itálico/rasurado...) ...
Principais Conjuntos de Ferramentas 15:12 Ferramentasde Texto(Adicionar Texto,Excluir Caracteres Específicos, ...)|   50+Tiposde Gráfico(Gráfico de Gantt, ...)|   40+ Fórmulas Práticas(Calcular a idade com base na data de nascimento, ...)|   19 Ferramentasde Inserção(Inserir QR Code,Inserir Imagem a Partir do Caminho, ...)|   12 Ferramentasde Conversão(Converter em Palavras,Conversão de moeda, ...)|   7 Ferramentasde Mesclar e Dividir(Mesclar Linhas Avançado,Dividir Células, ...)|... e muito mais
Utilize o Kutools na sua língua preferida – suporta inglês, espanhol, alemão, francês, chinês e mais 40+ idiomas!

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.

ExcelWordOutlookTabsPowerPoint
  • 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