VBA Syntaxe UCase (nom composé)

Bonjour à tous,

Dans une plage de saisie, je souhaite transformer: "dubois claude" en

"DUBOIS Claude"

Ce code fonctionne, mais à condition qu'il y aille 2 espaces entre nom et prénom.

Sub essai()
Dim Cel As Range, X As Byte
    Set Cel = Range("f13")
    X = InStr(1, Cel.Value, " ") + 1
    Cel.Characters(Start:=1, Length:=X + 1).Text = UCase(Cel.Characters(Start:=1, Length:=X + 1).Text)
End Sub

Comment coder pour que çà fonctionne avec une saisie à espaces variables ?

et résultat avec un seul espace entre nom et prénom.

Bonne journée

Claude.

Bonjour

essaies (insensible au nbre d'espace - mais au moins 1! - entre le nom et le prénom)

Dim tablo1, tablo2(0 To 1) As String

tablo1 = Split(Range("A1"))

tablo2(0) = UCase(tablo1(0))
tablo2(1) = tablo1(UBound(tablo1))

Range("A1") = Join(tablo2)

bonjour et merci Michel,

j'ai mis:

tablo2(1) = Application.Proper(tablo1(UBound(tablo1)))

pour avoir le prénom en nom propre, y avait t-il mieux à faire ?

encore merci

Claude

Re,

c'est OK mais on peut simplifier ma bidouille de tout à l'heure-(Excuse toute trouvée: sieste du lundi

Dim tablo1

tablo1 = Split(Range("A1"))

Range("A1") = UCase(tablo1(0)) & " " & Application.Proper(tablo1(UBound(tablo1)))

re,

là c'est nickel de chez nickel !

bien pratique ce Split

Merci, à+......Claude.

Rechercher des sujets similaires à "vba syntaxe ucase nom compose"