Ir ao conteúdo
  • Cadastre-se

Excel Ordem alfabética AUTOMATICA no excel


Posts recomendados

Boa tarde a todos.

Pesquisei antes, mas não encontrei tópico para minha dúvida (mesmo achando que ela existe aqui em algum lugar).

 

Pois bem, estou tentando fazer uma ordenação por ordem alfabética em uma planilha, para que sempre que for adicionado ou alterado um nome, este mova-se sozinho na planilha para o local devido, por exemplo (anexarei o arquivo)

 

image.png.e91bc752453c68d0eaf409fabb7d51b7.png

 

nesta situação preciso manter pela ordem alfabética observando-se a coluna 2, mas todos dados das colunas à esquerda e direita devem acompanhar para ficar assim:

CEL ALDIN

CEL ALDO

CEL PITA

 

 

***uma observação:

 

Cel PM fica no topo da tabela, depois

Ten Cel PM, depois

Maj PM, depois

Cap, PM etc (mesmo observando que (CA)p, seria primeiro que (CE)l, mas, existe uma obrigatoriedade de seguir assim por ser graduação militar.

 

Agradeço qualquer ajuda, já tentei várias situções.

 

 

image.png

Ordem alfabética automatica.xlsx

Link para o comentário
Compartilhar em outros sites

Bom dia @Keu Borges e @TygaBr56

 

Pra fazer automático assim que lança ou elimina dados, a solução penso que seria somente através do VBA (vide anexo).

 

De qualquer forma, sempre quando se têm listas com ordens de classificação personalizada que não seguem a ordem alfabética como a sua, de hierarquia militar, ou outras como filiais de empresa, tamanhos de roupa, diâmetros de tubulação, etc., o Excel oferece o excelente recurso Lista Personalizada que você pode usar na classificação manual também. O Excel já traz 4 listas pré-definidas, 2 para os dias da semana (seg, ter, ... e segunda-feira, terça-feira, ...) e 2 para os mêses (jan, fev,... e Janeiro, fevereiro, ...), mas você pode definir suas próprias listas.

 

Uma característica importante a ser levada em conta quando envia o arquivo a outras pessoas é que elas não vão junto com a Pasta de Trabalho Excel, mas sim ficam no aplicativo.

 

A solução anexa não usa Lista Personalizada para a hierarquia, mas sim uma variável no próprio código, embora possa ser alterado para tal.

 

Ordem alfabética automaticaEdsonBR.zip

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Edson Luiz Branco , obrigado por iniciar uma ajuda.

 

Me desculpe, mas meu conhecimento é muito básico.

Fiz a leitura da sua mensagem, bem como baixei o arquivo, mas infelizmente não conseguir entender, tentei ver sobre lista personalizada, mas sem êxito também.

 

A planilha que você envio com a tabela ao lado da minha, não vi formulas, o que me deixou nem confuso, e ainda assim, não ficou na classificação da hierarquia.

 

1º Cel PM

2º Ten Cel PM

3º Maj PM

4º Cap PM....

 

Se puder auxiliar um pouco mais, agradeço.

@Edson Luiz Branco Olá Edson, acabei de fazer um teste como você orientou com a "Lista Personalizada" e realmente funcionou.

 

No entanto, ela se alterou em partes, pois, quando eu faço inclusão a tabela faz a modificação em apenas uma coluna, não coloca completamente em ordem alfabética.

 

Se ainda puder ajudar, agradeço.

 

Muitíssimo obrigado.

Link para o comentário
Compartilhar em outros sites

2 minutos atrás, Keu Borges disse:

A planilha que você envio com a tabela ao lado da minha...

A que está nas colunas J:L é lixo que esqueci de apagar :oops: pode deletar (vai desculpando).

 

4 minutos atrás, Keu Borges disse:

não vi formulas,

Pra fazer classificação automática sobre os próprios dados só com VBA, não por fórmulas. você pode ver o código se clicar com o botão direito sobre a "orelha" da planilha e escolher "Exibir código".

 

Um detalhe importante: ao abrir um arquivo com macro a primeira vez, o Excel exibe um "Aviso de Segurança - As macros foram desabilitadas". Tem que clicar para aceitar "Habilitar Conteúdo" para que o código funcione.

 

8 minutos atrás, Keu Borges disse:

...e ainda assim, não ficou na classificação da hierarquia.

 

Se você aceitou habilitar as macros, insira novo registro ou edite um existente no intervalo da tabela ou em nova linha logo abaixo, ou delete qualquer linha ou valor para que a classificação aconteça.

Obs.: Levei em conta que a primeira chave de classificação é a coluna da patente militar e a segunda é o código (1ª coluna), não o nome, ok?

 

15 minutos atrás, Keu Borges disse:

...tentei ver sobre lista personalizada, mas sem êxito também.

 

Passo-a-passo:

  • Criar nova lista:
    • Para facilitar a digitação, insira num intervalo vazio qualquer de uma planilha a sequência completa de patentes, da menor para a maior, de preferência tudo em letras minúsculas (pra ficar padrão como nas listas do Excel);
    • Na guia Arquivo > Opções > na coluna esquerda escolha Avançado > no painel à direita role até o a categoria "Geral" (bem embaixo) e clique no botão "Editar Listas Personalizadas...";
    • Clique na seta ao lado esquerdo do botão Importar e na sua planilha selecione o intervalo com as patentes;
    • Após selecionar, clique novamente na setinha ou dê Enter pra voltar pra caixa de diálogo;
    • Clique no botão "Importar";
    • Já pode deletar a lista provisória que foi digitada na planilha.
  • Classificar segundo a nova Lista Personalizada:
    • Estando com a seleção dentro de sua tabela (ou selecionando a tabela previamente), na guia Página Inicial, grupo Edição, clique no botão "Classificar e Filtrar";
    • Escolha "Classificação Personalizada...";
    • Em Classificar por, escolha "Coluna B";
    • Em Classificar em, deixe "Valores das Células";
    • Em Ordem é que está o pulo do gato: escolha "Lista Personalizada...";
    • Escolha a Lista que foi criada na etapa anterior.
    • Clique novamente em Ordem e escolha a forma descendente de classificação (a que começa com "cel pm, ten cel pm, ...");
    • Como há valores repetidos nessa coluna, para que a tabela seja classificada também logo em seguida pelo código, clique no botão "Adicionar Nível";
    • Na nova linha que aparece, em "E depois por" escolha "Coluna A" e na sequência "Valores das Células"  e "Do menor para o Maior";
    • Clique em OK.

Obs.: Essa configuração fica ativa (salva) para as classificações seguintes, então não é necessário repetir todo esse procedimento novamente. A desvantagem em relação ao código do VBA é que a classificação só ocorre quando você clica em Classificar, não é automática ao alterar/inserir novos valores na tabela.

 

 

  • Amei 1
Link para o comentário
Compartilhar em outros sites

@Edson Luiz Branco Obrigado Edson.

 

Vou tentar fazer por VBA (não sei ainda como é kkkk), pois é o que necessito, que ela modifique automaticamente, para que eu não precise ficar classificando a cada novo registro.

 

E irei ver como alterar para a segunda opção ser a COLUNA NOME.

 

 

Obrigado mais uma vez.

Link para o comentário
Compartilhar em outros sites

1 minuto atrás, Keu Borges disse:

Vou tentar fazer por VBA (não sei ainda como é kkkk)

 

Chegou a testar habilitando as macros o arquivo que enviei anteriormente?

 

 

4 minutos atrás, Keu Borges disse:

...E irei ver como alterar para a segunda opção ser a COLUNA NOME.

 

Para alterar para classificar em seguida pelo nome é bem simples. No código, altere a seguinte linha:

     .SortFields.Add Key:=rgTbl.Columns(1), Order:=xlAscending
 

Para:

     .SortFields.Add Key:=rgTbl.Columns(3), Order:=xlAscending

 

Link para o comentário
Compartilhar em outros sites

@Edson Luiz Branco Habilitei sim, ele já estava fazendo a alteração automática na mesma célula e agora com a alteração que você falou da VBA, (1) para (3) ele está EXATAMENTE como necessito.

 

Como posso importar o VBA para um planilha que tenho pronta com mais de 400 nomes?

Link para o comentário
Compartilhar em outros sites

Copie e cole o código para a janela de código da planilha correspondente (botão direito na aba > Exibir Código).

Importante:

  • Esqueci de eliminar mais um lixo de programação: na rotina Sub ClassificarPorPatentes() elimine por gentileza a linha
    Set rgTbl = [A1].CurrentRegion
    pois está duplicado. O range já foi definido no evento Change logo acima.
  • Ao salvar, lembre-se de salvar como "Pasta de Trabalho Habilitada para Macro do Excel (*.xlsm)"
  • Se essa sua outra planilha tiver cabeçalho de colunas na primeira linha, altere também a linha: .Header = xlNo para .Header = xlYes
  • Se sua tabela não começa na A1, altere na linha Set rgTbl = [A1].CurrentRegion  no procedimento Worksheet_Change trocando [A1] por uma célula qualquer de sua tabela, preferivelmente a do canto superior esquerdo.

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...