Forcer la majuscule sur la première lettre d'une cellule

  • Initiateur de la discussion Initiateur de la discussion Tybo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Tybo

XLDnaute Junior
Bonjour à toutes et à tous,

je sais que le sujet a été traité et retraité mais je n'arrive pas à trouver une réponse qui me convienne sur les précédents posts.

J'aimerai obliger la saisie de la première lettre de toutes les cellules de toutes les feuilles de mon classeur tout en sachant que j'ai des données de validation dans la plupart de mes cellules.

Comment faire ??? merci
 
Re : Forcer la majuscule sur la première lettre d'une cellule

Bonjour Tybo, ici Tibo 😉

Par formule, on peut essayer avec ceci :

=EXACT(GAUCHE(A1);MAJUSCULE(GAUCHE(A1)))

retourne VRAI ou FAUX selon le cas

La formule peut être intégrée dans une validation.

Tu peux fusionner cette condition avec d'autres conditions dans ta validation. Ca risque cependant d'être peut-être un peu lourd.

@+
 
Re : Forcer la majuscule sur la première lettre d'une cellule

re,

C'est faisable avec une Validation personnalisée, mais pas avec une liste effectivement (du moins, à ma connaissance).


@+

Edit : En ce qui concerne les listes utilisées dans tes validations, il suffit qu'elles soient constituées correctement, c'est-à-dire avec des mots 1ère lettre majuscule et le reste minuscule.

@+
 
Dernière édition:
Re : Forcer la majuscule sur la première lettre d'une cellule

Bonjour à toutes et à tous,

je sais que le sujet a été traité et retraité mais je n'arrive pas à trouver une réponse qui me convienne sur les précédents posts.

J'aimerai obliger la saisie de la première lettre de toutes les cellules de toutes les feuilles de mon classeur tout en sachant que j'ai des données de validation dans la plupart de mes cellules.

Comment faire ??? merci
Salut
Manque pas des mots dans ton sujet ?

Solution par macro : <Alt>+<F11> => tu passes sous VBEditor
En haut à gauche dans la fenêtre VB Project, tu double-cliques sur ThisWorkBook, et dans la partie droite, tu colles
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error GoTo Err_Workbook_SheetChange
Dim Cel As Range
Application.ScreenUpdating = False
Application.EnableEvents = False
For Each Cel In Target
    If VarType(Cel) = vbString Then Cel = UCase(Left(Cel, 1)) & Right(Cel, Len(Cel) - 1)
Next Cel
Sort_Workbook_SheetChange:
    Application.ScreenUpdating = True
    Application.EnableEvents = True
    Exit Sub
Err_Workbook_SheetChange:
    MsgBox Err.Description, vbCritical + vbOKOnly, "Erreur Excel n°" & Err.Number
    Resume Sort_Workbook_SheetChange
End Sub
S'il y a une modif des cellules sur une feuille quelconque du classeur, Excel lance la macro qui regarde le contenu de chacune des cellules modifiées, et si c'est du texte, met la première lettre en majuscules, sans toucher aux autres
A+
 
Re : Forcer la majuscule sur la première lettre d'une cellule

Bonjour tous,

Pour saisir un nom qui n'est pas dans la liste :
3ème onglet de Données - Validation, décocher "Quand des données non valides sont tapées"

Comme alerte, on peut mettre ce format conditionnel
=EXACT(G2;NOMPROPRE(G2))=FAUX

Tybo, tu dis bien clients donc noms de famille ?
Et les noms composés ?

Le problème des noms à particule et des noms précédés de Le ou de L'
pas de majuscule à la particule "de " ou "du " ou "d'"
mais Le Rousic, Le Gall, L'Hostis : 2 majuscules

La formule du format conditionnel :
=EXACT(B2;SI((NB.SI(B2;"d"&"*"&" "&"*")+NB.SI(B2;"d"&"'"&"*"))*(ESTNUM(TROUVE(" ";B2))*3+(ESTNUM(TROUVE("'";B2))*2))>0;MINUSCULE(STXT(B2;1;(NB.SI(B2;"d"&"*"&" "&"*")+NB.SI(B2;"d"&"'"&"*"))*(ESTNUM(TROUVE(" ";B2))*3+(ESTNUM(TROUVE("'";B2))*2))));"")&NOMPROPRE(STXT(B2;(NB.SI(B2;"d"&"*"&" "&"*")+NB.SI(B2;"d"&"'"&"*"))*(ESTNUM(TROUVE(" ";B2))*3+(ESTNUM(TROUVE("'";B2))*2))+1;255)))=FAUX

Une partie de la formule est nommée (car trop longue), ça donne :
=EXACT(B2;SI(Repère>0;MINUSCULE(STXT(B2;1;Repère));"")&NOMPROPRE(STXT(B2;Repère+1;255)))=FAUX
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
574
Retour