Je connais la fonction Proper qui met une majuscule à chaque première lettre
d'un mot. Si je tape M et Mme Tartempion née Machin, je vais obtenir "Et "
et "Née". Or je voudrais que "et" et "née" restent en minuscules. Ne pas
oublier que la place de "et" et "née" peut varier selon que l'on tape M ou
Mr, Mme ou Mlle.
Amicalement. Pascal "il n'y a pas de vent favorable pour celui qui ne sait pas ou il va." Sénèque. http://www.ilyapa.net/excel http://www.ilyapa.net/baseExcel "khinoa" a écrit dans le message de news: 40af037a$0$2392$
Bonjour à tous,
Je connais la fonction Proper qui met une majuscule à chaque première lettre
d'un mot. Si je tape M et Mme Tartempion née Machin, je vais obtenir "Et " et "Née". Or je voudrais que "et" et "née" restent en minuscules. Ne pas oublier que la place de "et" et "née" peut varier selon que l'on tape M ou Mr, Mme ou Mlle.
D'avance merci pour l'aide
khinoa
Salut,
il faut combiner les fonctions :
en vba :
.../...
ch = Ucase(left(ch,1)) & Lcase(mid(ch,2))
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
http://www.ilyapa.net/baseExcel
"khinoa" <bidon@zozo.com> a écrit dans le message de news:
40af037a$0$2392$636a15ce@news.free.fr...
Bonjour à tous,
Je connais la fonction Proper qui met une majuscule à chaque première
lettre
d'un mot. Si je tape M et Mme Tartempion née Machin, je vais obtenir "Et "
et "Née". Or je voudrais que "et" et "née" restent en minuscules. Ne pas
oublier que la place de "et" et "née" peut varier selon que l'on tape M ou
Mr, Mme ou Mlle.
Amicalement. Pascal "il n'y a pas de vent favorable pour celui qui ne sait pas ou il va." Sénèque. http://www.ilyapa.net/excel http://www.ilyapa.net/baseExcel "khinoa" a écrit dans le message de news: 40af037a$0$2392$
Bonjour à tous,
Je connais la fonction Proper qui met une majuscule à chaque première lettre
d'un mot. Si je tape M et Mme Tartempion née Machin, je vais obtenir "Et " et "Née". Or je voudrais que "et" et "née" restent en minuscules. Ne pas oublier que la place de "et" et "née" peut varier selon que l'on tape M ou Mr, Mme ou Mlle.
D'avance merci pour l'aide
khinoa
khinoa
Bonjour Pascal,
Merci mais j'ai trouvé ceci :
For Each c In Range("a2:a20") If InStr(2, c, "et") <> 0 Then c = Application.Proper(c) pos1 = InStr(1, c, "Et") pos2 = InStr(1, c, "Née") longueurnom = pos2 - 10 ' longueur du nom diff = Len(c) - pos2 ' extraction à droite de Née nom = Application.Proper(Mid(c, 10, longueurnom)) ' extraction nom c = "M et Mme " & nom & "née" & Application.Proper(Right(c, diff - 2)) Else c = Application.Proper(c) End If Next
Ce n'est pas parfait mais c'est mieux que rien
Au revoir
khinoa
Bonjour Pascal,
Merci mais j'ai trouvé ceci :
For Each c In Range("a2:a20")
If InStr(2, c, "et") <> 0 Then
c = Application.Proper(c)
pos1 = InStr(1, c, "Et")
pos2 = InStr(1, c, "Née")
longueurnom = pos2 - 10 ' longueur du nom
diff = Len(c) - pos2 ' extraction à droite de Née
nom = Application.Proper(Mid(c, 10, longueurnom)) ' extraction nom
c = "M et Mme " & nom & "née" & Application.Proper(Right(c, diff - 2))
Else
c = Application.Proper(c)
End If
Next
For Each c In Range("a2:a20") If InStr(2, c, "et") <> 0 Then c = Application.Proper(c) pos1 = InStr(1, c, "Et") pos2 = InStr(1, c, "Née") longueurnom = pos2 - 10 ' longueur du nom diff = Len(c) - pos2 ' extraction à droite de Née nom = Application.Proper(Mid(c, 10, longueurnom)) ' extraction nom c = "M et Mme " & nom & "née" & Application.Proper(Right(c, diff - 2)) Else c = Application.Proper(c) End If Next
Ce n'est pas parfait mais c'est mieux que rien
Au revoir
khinoa
FxM
Bonjour,
Il me semble que remplacer (AVEC les espaces) devrait solutionner : remplacer " Née " par " née " remplacer " Né " par " né " remplacer " Et " par " et "
@+ FxM
Bonjour Pascal,
Merci mais j'ai trouvé ceci :
For Each c In Range("a2:a20") If InStr(2, c, "et") <> 0 Then c = Application.Proper(c) pos1 = InStr(1, c, "Et") pos2 = InStr(1, c, "Née") longueurnom = pos2 - 10 ' longueur du nom diff = Len(c) - pos2 ' extraction à droite de Née nom = Application.Proper(Mid(c, 10, longueurnom)) ' extraction nom c = "M et Mme " & nom & "née" & Application.Proper(Right(c, diff - 2)) Else c = Application.Proper(c) End If Next
Ce n'est pas parfait mais c'est mieux que rien
Au revoir
khinoa
Bonjour,
Il me semble que remplacer (AVEC les espaces) devrait solutionner :
remplacer " Née " par " née "
remplacer " Né " par " né "
remplacer " Et " par " et "
@+
FxM
Bonjour Pascal,
Merci mais j'ai trouvé ceci :
For Each c In Range("a2:a20")
If InStr(2, c, "et") <> 0 Then
c = Application.Proper(c)
pos1 = InStr(1, c, "Et")
pos2 = InStr(1, c, "Née")
longueurnom = pos2 - 10 ' longueur du nom
diff = Len(c) - pos2 ' extraction à droite de Née
nom = Application.Proper(Mid(c, 10, longueurnom)) ' extraction nom
c = "M et Mme " & nom & "née" & Application.Proper(Right(c, diff - 2))
Else
c = Application.Proper(c)
End If
Next
Il me semble que remplacer (AVEC les espaces) devrait solutionner : remplacer " Née " par " née " remplacer " Né " par " né " remplacer " Et " par " et "
@+ FxM
Bonjour Pascal,
Merci mais j'ai trouvé ceci :
For Each c In Range("a2:a20") If InStr(2, c, "et") <> 0 Then c = Application.Proper(c) pos1 = InStr(1, c, "Et") pos2 = InStr(1, c, "Née") longueurnom = pos2 - 10 ' longueur du nom diff = Len(c) - pos2 ' extraction à droite de Née nom = Application.Proper(Mid(c, 10, longueurnom)) ' extraction nom c = "M et Mme " & nom & "née" & Application.Proper(Right(c, diff - 2)) Else c = Application.Proper(c) End If Next