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.
Em 90% dos casos em que não se anexa o arquivo, ocorrem mal-entendidos, gerando perda de tempo de ambos os lados.
Em 90% dos casos em que não se anexa o arquivo, ocorrem mal-entendidos, gerando perda de tempo de ambos os lados.
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:
- 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
- Coluna "Cidade":
- Idem ao anterior: na C2 digite PETROLINA
- CTRL E na C3
- 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.
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!