Notifications
Clear all

textbox com 1ª letra maiúscula com exceções

7 Posts
4 Usuários
0 Reactions
2,270 Visualizações
(@edilsonjc)
Posts: 39
Eminent Member
Topic starter
 

Galera tenho algumas textbox onde a primeira letra sempre fica em maiúscula porém, gostaria de colocar uma exceção com a seguinte regra:
quando entre as palavras houver a letra "de, da, do" a primeira letra ficasse em minúscula. Por exemplo: " Maria Da Silva para Maria da Silva"

estou usando este código para a 1ª letra:

TextBox1.Text = StrConv(TextBox1.Text, vbProperCase)

Valeu.

 
Postado : 11/01/2014 8:31 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Não sei se existe uma forma mais fácil, mas, segue minha sugestão:

Sub teste()

Dim Nome                As String
Dim Particula_atona(3)  As String
Dim Particula(3)        As String
Dim i                   As Integer

Particula_atona(1) = "Da"
Particula_atona(2) = "De"
Particula_atona(3) = "Do"

Particula(1) = "da"
Particula(2) = "de"
Particula(3) = "do"

Nome = "maria da silva de quadros do porto"
Nome = StrConv(Nome, vbProperCase)

For i = 1 To 3
Nome = Replace(Nome, " " & Particula_atona(i) & " ", " " & Particula(i) & " ")
Next
End Sub

Usei uma variável Nome para testar, troque por TextBox1.Text

Vc tb pode adaptar as variáveis Particula_atona(3) e Particula(3) à quantidade de casos que tiver. Coloquei 3 porque vc indicou 3.

Se alguém indicar uma alternativa melhor, eu aprendo tb :)

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 11/01/2014 10:27 am
(@edilsonjc)
Posts: 39
Eminent Member
Topic starter
 

Usei a sequência abaixo mais as palavras estão ficando todas em minúscula. Veja se consegue ver o meu erro.

Sub teste()

Dim Altera              As String
Dim Particula_atona(3)  As String
Dim Particula(3)        As String
Dim i                   As Integer

Particula_atona(1) = "Da"
Particula_atona(2) = "De"
Particula_atona(3) = "Do"

Particula(1) = "da"
Particula(2) = "de"
Particula(3) = "do"

Altera = TextBox_Nome.Text
Altera = StrConv(Altera, vbProperCase)

For i = 1 To 3
Altera = Replace(Altera, " " & Particula_atona(i) & " ", " " & Particula(i) & " ")
Next
End Sub
 
Postado : 11/01/2014 12:33 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

edilsonjc,

tente:

Sub teste()

Dim Altera              As String
Dim Particula_atona(3)  As String
Dim Particula(3)        As String
Dim i                   As Integer

Particula_atona(1) = "Da"
Particula_atona(2) = "De"
Particula_atona(3) = "Do"

Particula(1) = "da"
Particula(2) = "de"
Particula(3) = "do"

Altera = TextBox_Nome.Text
Altera = StrConv(Altera, vbProperCase)

For i = 1 To 3
Altera = Replace(Altera, " " & Particula_atona(i) & " ", " " & Particula(i) & " ")
Next
TextBox_Nome.Text = Altera
End Sub

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 11/01/2014 12:44 pm
(@edilsonjc)
Posts: 39
Eminent Member
Topic starter
 

gtsalikis
Show de Bola.
Agora tá funcionando

:D

Valeu.
Muitíssimo Obrigado.

 
Postado : 11/01/2014 1:04 pm
kurkas
(@kurkas)
Posts: 85
Trusted Member
 

Estamos sempre a aprender....

 
Postado : 11/01/2014 4:01 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Caso seja necessário reabrir o tópico, o autor poderá enviar uma MP para um dos moderadores solicitando o desbloqueio.

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

 
Postado : 12/01/2014 6:11 pm