Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Mettre la 1er lettre des mots d'une cellule en majuscule

4 réponses
Avatar
Steph
Bonjour,

Voici une formule qui permet de changer la 1er lettre du texte de la
cellule en Majuscule et met le reste en minuscule.

Si formule en B1
Exemple
A1= EXEMPLE --> B1 = Exemple
A1=exemple ---> B1 = Exemple

=CONCATENER(MAJUSCULE(GAUCHE(A1;1));MINUSCULE(SUBSTITUE(A1;GAUCHE(A1;1);"")))


Maintenant, plus dur si j'ai 2 ou 3 nom dans la même cellule avez vous une
idée ?

Je souhaiterais avoir
Si A1= exemple EXEMPLE test --> B1=Exemple Exemple Test

Merci

Steph

4 réponses

Avatar
patrick.lyon
bonjour
=NOMPROPRE(A1)

"Steph" a présenté l'énoncé suivant :
Bonjour,

Voici une formule qui permet de changer la 1er lettre du texte de la
cellule en Majuscule et met le reste en minuscule.

Si formule en B1
Exemple
A1= EXEMPLE --> B1 = Exemple
A1=exemple ---> B1 = Exemple

=CONCATENER(MAJUSCULE(GAUCHE(A1;1));MINUSCULE(SUBSTITUE(A1;GAUCHE(A1;1);"")))


Maintenant, plus dur si j'ai 2 ou 3 nom dans la même cellule avez vous une
idée ?

Je souhaiterais avoir
Si A1= exemple EXEMPLE test --> B1=Exemple Exemple Test

Merci

Steph


Avatar
JpPradier
Bonjour Steph

=NomPropre(A1)

j-p
Avatar
Bruno LOUIS
Salut Steph,

Je ne pense pas qu'il n'existe pas de fonction qui puisse faire ce que tu
veux. Mais avec une petite macro c'est faisable :

insère un module à ton classeur, colle le code ci-dessous et utilise la
nouvelle fonction créée intitulée DebutMaj(Cellule) :

Public Function DebutMaj(Cellule As Range) As String
Dim n As Integer, s As String
s = LCase(Cellule.Text)
s = UCase(Left(s, 1)) & Right(s, Len(s) - 1)
For n = 2 To Len(s)
If Mid(s, n - 1, 1) = " " And Mid(s, n, 1) <> " " Then
s = Left(s, n - 2) & " " & UCase(Mid(s, n, 1)) & Right(s,
Len(s) - n)
End If
Next n
DebutMaj = s
End Function

Je pense qu'on doit pouvoir optimiser ce code, mais ça marche.

Bruno

"Steph" a écrit dans le message de news:
%23$
Bonjour,

Voici une formule qui permet de changer la 1er lettre du texte de la
cellule en Majuscule et met le reste en minuscule.

Si formule en B1
Exemple
A1= EXEMPLE --> B1 = Exemple
A1=exemple ---> B1 = Exemple


=CONCATENER(MAJUSCULE(GAUCHE(A1;1));MINUSCULE(SUBSTITUE(A1;GAUCHE(A1;1);"")))


Maintenant, plus dur si j'ai 2 ou 3 nom dans la même cellule avez vous une
idée ?

Je souhaiterais avoir
Si A1= exemple EXEMPLE test --> B1=Exemple Exemple Test

Merci

Steph




Avatar
Bruno LOUIS
Autant pour moi : "nompropre" ça a l'air plus simple ;)

Bruno

"Bruno LOUIS" a écrit dans le message de
news: 41c011d5$0$9531$
Salut Steph,

Je ne pense pas qu'il n'existe pas de fonction qui puisse faire ce que tu
veux. Mais avec une petite macro c'est faisable :

insère un module à ton classeur, colle le code ci-dessous et utilise la
nouvelle fonction créée intitulée DebutMaj(Cellule) :

Public Function DebutMaj(Cellule As Range) As String
Dim n As Integer, s As String
s = LCase(Cellule.Text)
s = UCase(Left(s, 1)) & Right(s, Len(s) - 1)
For n = 2 To Len(s)
If Mid(s, n - 1, 1) = " " And Mid(s, n, 1) <> " " Then
s = Left(s, n - 2) & " " & UCase(Mid(s, n, 1)) & Right(s,
Len(s) - n)
End If
Next n
DebutMaj = s
End Function

Je pense qu'on doit pouvoir optimiser ce code, mais ça marche.

Bruno

"Steph" a écrit dans le message de
news: %23$
Bonjour,

Voici une formule qui permet de changer la 1er lettre du texte de la
cellule en Majuscule et met le reste en minuscule.

Si formule en B1
Exemple
A1= EXEMPLE --> B1 = Exemple
A1=exemple ---> B1 = Exemple


=CONCATENER(MAJUSCULE(GAUCHE(A1;1));MINUSCULE(SUBSTITUE(A1;GAUCHE(A1;1);"")))


Maintenant, plus dur si j'ai 2 ou 3 nom dans la même cellule avez vous
une idée ?

Je souhaiterais avoir
Si A1= exemple EXEMPLE test --> B1=Exemple Exemple Test

Merci

Steph