Lettre en Majuscule , que la premiere de la celulle

Evelynetfrancois

XLDnaute Impliqué
Sub premiere_lettre_en_maj()
For Each cel In Selection
cel.Value = Replace(cel.Value, Left(cel.Value, 1), UCase(Left(cel.Value, 1)))
Next cel
End Sub

bonjour tout le monde
je me heurte à un probleme de majuscule
cette macro devrait (pour bien faire) me mettre que la premiere lettre de la cellule en majuscule
ex : maison à demonter devrais me donner ....."Maison à demonter" hors elle me donne Maison à deMonter
-En fait elle remplace toutes les premieres lettres de gauche (ici le m) en majuscule
voyez vous la faille avez vous une idées?
Merci d'avance pour toutes vos sujetions
E et F
 

tototiti2008

XLDnaute Barbatruc
Re : Lettre en Majuscule , que la premiere de la celulle

Bonjour EvelyneetFrançois,

peut-être

Code:
Sub premiere_lettre_en_maj()
For Each cel In Selection
cel.Value = ucase(Left(cel.Value, 1)) & lcase(right(cel.value,len(cel.value)-1))
Next cel
End Sub

Bonjour Pierrejean, plaisir partagé ;), j'avais mal placé une parenthèse...
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Lettre en Majuscule , que la premiere de la celulle

Bonjour E & F

A tester:

Code:
For Each cel In Selection
cel.Value = UCase(Left(cel.Value, 1)) & Right(cel.Value, Len(cel.Value) - 1)
Next cel

Edit: Salut Tototiti :) :) toujours heureux de te croiser
 

Evelynetfrancois

XLDnaute Impliqué
Re : Lettre en Majuscule , que la premiere de la celulle

bonsoir Pierrejean , tototiti2008
je vous remercie un fois de plus pour votre reactivité !!
cependant : suite aux tests :
les macros proposées fonctionnent si je ne selectionne qu' une cellule
par conte si je selectionne plusieurs cellules contigues (For Each cel In Selection) ca beugue !!

une idées ?
encore merci pour tout ..
E et F

oups , se sont les cellules vides de la selection qui font beuguer ..
j ai donc mis
on error resume next , et tout est rentré dans l'ordre
merci pour tout
E et F
 
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : Lettre en Majuscule , que la premiere de la celulle

Bonjour E & F, Bonjour Pierrejean, :)

on error resume next , et tout est rentré dans l'ordre

même si je ne doute pas que ça fonctionne, pas forcément le meilleur réflexe à prendre, On error resume next ne fait que masquer les problèmes et peut-être dangereux dans certains cas, et s'il y a une autre manière de contourner, mieux vaut privilégier l'autre manière

Peut-être

Code:
Sub premiere_lettre_en_maj()
For Each cel In Selection
if len(cel.value)>1 then
cel.Value = ucase(Left(cel.Value, 1)) & lcase(right(cel.value,len(cel.value)-1))
elseif len(cel.value)>0 then
cel.Value = ucase(cel.value)
end if
Next cel
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
313 061
Messages
2 094 928
Membres
106 129
dernier inscrit
Kami_54