Separar informações...
 
Notifications
Clear all

[Resolvido] Separar informações por padrões

3 Posts
3 Usuários
0 Reactions
1,272 Visualizações
(@mauriiciol)
Posts: 0
New Member
Topic starter
 

Pessoal,
Boa tarde!

Tudo bem? preciso de uma ajuda de vocês para automatizar um comando para separar dentro de uma coluna de endereço o "Bairro, Cidade e UF". Tenho uma planilha onde tem uma coluna com o endereço completo de alguns clientes, porém dessa coluna, gostaria de repassar para outras colunas(B, C e D) o Bairro, Cidade e UF. Observo que existe alguns padrões para facilitar o código no VBA, abaixo citarei item por item e seus possíveis padrões:

Exemplo do endereço(Coluna A): Tv. CHACARA MIRINEU-520-VILA ESPANHA-BL4 MERIDA, 520 - SIM - CEP: 44086000 - FEIRA DE SANTANA - BA

 

- Bairro:  Ultimo penúltimo hífen até o ultimo hífen antes do CEP: ("- "SIM" - "CEP: 44086000 - FEIRA DE SANTANA - BA) = SIM

- Cidade: Após o penúltimo hífen até o ultimo hífen (" - "FEIRA DE SANTANA" - ") = FEIRA DE SANTANA

- UF: Essa informação vem após o ultimo hífen(FEIRA DE SANTANA" - "BA) = BA

 

Em anexo tem a planilha com alguns endereços para melhor visualização, todos os 15 endereços em anexo são dentro dos padrões.

Sou novo aqui, não sei se fui claro na informações citadas. Agradeço a todos.

 
Postado : 10/10/2020 5:34 pm
(@anderson)
Posts: 0
New Member
 

Este vídeo explica:

 

https://youtu.be/uqfWPGz0AyA

 
Postado : 10/10/2020 5:59 pm
(@anderson)
Posts: 0
New Member
 

Mais vídeos relacionados:

 

https://www.youtube.com/results?search_query=vba+separar+texto+em+colunas

 

 

 
Postado : 10/10/2020 6:01 pm
(@edsonbr)
Posts: 0
New Member
 

Bem vindo ao Planilhando, @mauriiciol

Insira um módulo normal no VBA e cole o código abaixo:

Option Compare Text
Function ExtraiInfo(txt As String, TipoInfo As String) As String
  Dim arrTmp As Variant: arrTmp = Split(txt, "-")
  Application.Volatile
  Select Case TipoInfo
    Case "Bairro": ExtraiInfo = Trim(arrTmp(UBound(arrTmp) - 3))
    Case "Cidade": ExtraiInfo = Trim(arrTmp(UBound(arrTmp) - 1))
    Case "UF":     ExtraiInfo = Trim(arrTmp(UBound(arrTmp)))
  End Select
End Function

 Agora no Excel, na célula B2, use a fórmula:

=ExtraiInfo($A2;B$1)

 Arraste para baixo e depois para o lado direito pra preencher a tabela.


Método alternativo: se seu Excel for 2016 ou superior, não precisaria nada disso. Nem fórmula, nem VBA. Seria só usar a inteligência artificial oferecida pelo recurso "Preenchimento Relâmpago" que a extração é automática:

  1. Coluna "Bairro":
    • Na célula B2, digite o bairro que está na A2 exatamente como está escrito, inclusive em letras maiúsculas: ATRAS DA BANCA
    • Com o cursor na B3, dê CTRL + E
  2. Coluna "Cidade":
    • Idem ao anterior: na C2 digite PETROLINA
    • CTRL E na C3
  3. Coluna "UF":
    • Idem, porém aqui vc vai "ensinar" o recurso a entender exatamente o que vc quer.
    • Em D2 digite PE
    • Em D3 CTRL +E. Note que da linha 9 em diante ele não entendeu exatamente o que vc pediu. Mas é só mostrar.
    • Na célula D9 digite agora BA. Note agora que nem precisou dar CTRL+E, ele mesmo já preenche corretamente. Se isso não aconteceu, dê CTRL+E novamente.
 
Postado : 11/10/2020 1:27 am
(@mauriiciol)
Posts: 0
New Member
Topic starter
 

@EdsonBR

Muito obrigado pelo apoio e colaboração, o exemplo 1 deu super certo!!!

Agradeço!!

O Exemplo 2 deu algumas divergências..

 

Sucesso e ótimo Feriado!

 
Postado : 11/10/2020 6:57 pm