Notifications
Clear all

identificar nome abreviado

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

boa tarde!

sou novo aqui, e sou novato no vba.

gostaria de saber como eu identifico se o nome esta abreviado ou não?

desde ja agradeço

 
Postado : 02/10/2015 12:28 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Cara nao entendi direito mas se vc tiver

Joao G Silva

Vc pode por exemplo ter infinitas opções

Joao Gomes da Silva
Joao Gonçalves da Silva
Joao Goulart da Silva
Joao Garcia da Silva

E por ae afora precisa comparar algo com o G para identificar quem é o Joao G da Silva.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 02/10/2015 12:41 pm
(@leandro15)
Posts: 3
New Member
Topic starter
 

eu tenho uma coluna com milhares de nomes. Alguns desses nomes são abreviados e eu tenho q identificá-los utilizando VBA.

ex.:
NOME ------------------------- ESTA ABREVIADO
Joao Gomes da Silva--------------Nao
Joao G da Silva--------------------Sim
Joao Goulart Silva----------------Não
Joao Garcia R Silva---------------Sim

 
Postado : 02/10/2015 12:46 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Para isso e tal abreviado, tem que ter uma forma padrão!

Qual seria a forma padrão?

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 02/10/2015 2:04 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Leandro vc nao entendeu, entenda que no meu exemplo Joao G da Silva pode ser abreviação de qualquer um nos nomes que postei.

Precisa existir um criterio para a condição ser verdadeira e a macro retornar o esperado.

Neste caso a função se funciona do mesmo modo, ou seja vc precisa dizer ao excel o que vc espera que ele responda.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 02/10/2015 6:58 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

eu tenho uma coluna com milhares de nomes. Alguns desses nomes são abreviados e eu tenho q identificá-los utilizando VBA.

ex.:
NOME ------------------------- ESTA ABREVIADO
Joao Gomes da Silva--------------Nao
Joao G da Silva--------------------Sim
Joao Goulart Silva----------------Não
Joao Garcia R Silva---------------Sim

Leandro, considerando que as abreviações estejam todas com sómente uma (1) LETRA, podemos considerar como Padrão e utilizar como "Critério" e construirmos as instruções para separar nome e sobrenomes e contar a quantidade de caracteres em cada texto e se a quantidade de algum for igual a "UM (1)" considerar como Abreviado, mas somente se estiver neste padrão, não importando quantos sobrenomes tem, ao encontrar o primeiro que coincida com a verificação pula para o próximo nome.
Abaixo a rotina e um exemplo :

Sub VeriicarNomeSobrenome()
    Dim sNome As Range
    Dim sRng As Range
    Dim sSplitNomes 'Separa os Nomes
    Dim ultimalinha As Long 'Ultima Linha
    Dim LenText As Integer 'Tamanho do Texto
    Dim xNome As String 'Nome individual
    
    ultimalinha = Range("A1048576").End(xlUp).Row 'verifica qual a ultima celula preenchida

    Set sRng = Range("A2:" & "A" & ultimalinha)
    
    For Each sNome In sRng
        
        sSplitNomes = VBA.Split(sNome.Value) 'Captura qde de palavras nos nomes
        
        xNome = ""
        
        For i = 0 To UBound(sSplitNomes)
            
            xNome = sSplitNomes(i) 'Separa os nomes
            LenText = Len(xNome) 'Conta a qde de caracteres no nome
            
            If LenText = 1 Then 'Se for igual a 1 = Sim - Abreviado
                sNome.Offset(0, 1).Interior.Color = vbYellow
                sNome.Offset(0, 1).Value = "Sim"
            
                GoTo sProximoNome 'Interrompe e pula para o próximo nome
                
            End If
        Next
        
sProximoNome:
    
            If LenText > 1 Then 'Se for maior que 1 = Não Abreviado
                sNome.Offset(0, 1).Interior.Color = vbGreen
                sNome.Offset(0, 1).Value = "Nao"
            End If
    Next

End Sub

identificar nome abreviado - "Separar nome e sobrenomes"

Faça os teste em seu arquivo e veja se é isto.

Se a dica ajudou, clique na mãozinha ao lado do icone CITAR para agradecer.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 02/10/2015 10:44 pm
(@leandro15)
Posts: 3
New Member
Topic starter
 

É isso ai cara....funcionou perfeitamente.
muito obrigado pela atenção e pela ajuda....
ABÇ

 
Postado : 05/10/2015 6:45 am