Duvida sobre função...
 
Notifications
Clear all

Duvida sobre função Right vba

5 Posts
4 Usuários
0 Reactions
1,622 Visualizações
 cts
(@cts)
Posts: 6
Active Member
Topic starter
 

Boa tarde, galera!!
Estou precisando extrair o Sobrenome.

Francisco de almeida Santos, pegar apenas a palavra Santos
Sandro Alves Teixeira, pegar apenas a palavra Teixeira

msgbox right(range("D2").value),len(range("D2").value)

Fiz da forma acima porque cada Sobrenome tem um tamanho diferente, mas não obtive resultado.

Se alguém puder me ajudar, eu agradeço.
Aguardo retorno.

 
Postado : 05/11/2019 12:40 pm
(@faraha)
Posts: 28
Eminent Member
 

Cts, boa tarde.
Não estou com um computador para testar no momento. Mas vamos lá.

Como os nomes podem variar de tamanho e de quantidade(nomes compostos e quantidades de sobrenome diferentes), a melhor forma de obter o último sobrenome seria:

sub exemplo()
x = split(range("D2").value," ")
msgbox x(ubound(x))
end sub
 
Postado : 05/11/2019 1:08 pm
Mauro Coutinho
(@coutinho)
Posts: 95
Estimable Member
 

Poste como voce montou a sua rotina, porque a que o colega Farah passou funciona perfeitamente com um nome digitado em D2, e com a mensagem de erro que voce citou da a entender que está montando um Array, assim afica mais fácil dar uma sugestão precisa.

[]s
Mauro Coutinho

 
Postado : 05/11/2019 3:10 pm
 cts
(@cts)
Posts: 6
Active Member
Topic starter
 

Boa tarde,

Preciso o nome da pessoa menos o Sobrenome

Carlos Almeida de Carvalho - preciso pegar Carlos Almeida de

Debora dos Santos Pereira - preciso pega Debora dos Santos

Dim MyResult() As String

MyText = "Carlos Almeida de Carvalho"
MyResult = Split(MyText, " ")

MsgBox MyResult(UBound(MyResult))

Fiz o código acima, ele tira o Sobrenome Carvalho, mas não estou sabendo como mostrar o nome Carlos Almeida de

Se alguém pude me ajudar agradeço.

 
Postado : 07/11/2019 2:28 pm
Reinaldo
(@rlm)
Posts: 246
Estimable Member
 

Procure se manter o mesmo tópico ate ser concluido. :mrgreen:
Experimente:

Sub separa()
Dim MyResult() As String, MyText As String
Dim Sobrenome As String, Nome As String
Dim x As Integer
MyText = "Carlos Almeida de Carvalho"
MyResult = Split(MyText, " ")
For x = 0 To UBound(MyResult) - 1
    If x = 0 Then
        Nome = MyResult(x)
    Else
        Nome = Nome & " " & MyResult(x)
    End If
Next
Sobrenome = MyResult(UBound(MyResult))
MsgBox Sobrenome & " _/_  " & Nome
End Sub

Reinaldo

 
Postado : 07/11/2019 7:57 pm