VBA ou formule Majuscule nom-prénom avec espace

Bonsoir à tous,

en VBA ou par formule,

Exemple : dans une cellule j'ai : jean gabin

je voudrais mettre en Nompropre jean et en majuscule gabin

sachant que l'emplacement de l'espace est variable

possible ?

bonne soirée

Claude.

Bonsoir,

essaie avec ce code :

Sub claude()
Dim Cel As Range, X As Byte
For Each Cel In Range("A1:A" & [A65000].End(xlUp).Row)
    X = InStr(1, Cel.Value, " ")
    Cel.Characters(Start:=X + 1, Length:=Len(Cel) - X).Text = _
        UCase(Cel.Characters(Start:=X + 1, Length:=Len(Cel) - X).Text)
    Cel.Characters(Start:=1, Length:=1).Text = _
        UCase(Cel.Characters(Start:=1, Length:=1).Text)
Next Cel
End Sub

Bonsoir Claude, Salut felix,

Une formule pour faire Jean GABIN :

=NOMPROPRE(GAUCHE(A1;CHERCHE(" ";A1)-1))&" "&MAJUSCULE(DROITE(A1;NBCAR(A1)-CHERCHE(" ";A1)))

ou bien pour faire JEAN Gabin :

=MAJUSCULE(GAUCHE(A1;CHERCHE(" ";A1)-1))&" "&NOMPROPRE(DROITE(A1;NBCAR(A1)-CHERCHE(" ";A1)))

re felix,

C'est vraiment nickel !

et si j'avais voulu le contraire , jean en majuscule et gabin en nompropre ?

Je ne sais pas trop quoi intervertir !

Claude.

édit: merci aussi Raja, je note.

Re,

dans ce cas, bien plus simple

Sub claude2()
Dim Cel As Range, X As Byte
For Each Cel In Range("A1:A" & [A65000].End(xlUp).Row)
    X = InStr(1, Cel.Value, " ") + 1
    Cel.Characters(Start:=1, Length:=X + 1).Text = _
        UCase(Cel.Characters(Start:=1, Length:=X + 1).Text)
Next Cel
End Sub

Edit, oublié le + 1 dans le code

re au forum,

Ce coup-ci, j'ai la totale !

merci à vous deux

Amicalement

Claude.

Rechercher des sujets similaires à "vba formule majuscule nom prenom espace"