Création macro - Première lettre en majuscule à la saisie

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 !

Nicky_Larson

XLDnaute Nouveau
Bonjour à tous, bonjour le forum,

J'ai une question sur une macro au niveau de la saisie dans Excel.

Je voudrais créer une macro pour que toutes les cellules saisies dans une certaine colonne aient automatiquement la première lettre en majuscule.

En fouinant sur internet j'ai trouvé du code pour mettre tout en majuscule, ça ressemble à ceci :

Private Sub Worksheet_Change(ByVal zz As Range)
If Intersect(zz, [E2:E60000]) Is Nothing Then Exit Sub
Application.EnableEvents = False
zz = UCase(zz)
Application.EnableEvents = True
End Sub

Effectivement ça marche, mais pour tout mettre en majuscule.
Ils indiquent également que pour mettre la première lettre en majuscule il faut remplacer UCase par Proper. J'ai essayé mais cela ne marche pas.

Avez vous une solution ?

Merci d'avance pour votre aide.
 
Re : Création macro - Première lettre en majuscule à la saisie

Bonjour Nicky_larson

Private Sub Worksheet_Change(ByVal zz As Range)
If zz.column = 5 then
Application.EnableEvents = False
zz = Application.WorksheetFunction.Proper(z)
Application.EnableEvents = True
end if
End Sub
 
Re : Création macro - Première lettre en majuscule à la saisie

Bonjour,

Bin moi je suis un vrai débutant et je voudrai savoir comment associer deux codes suivants :

Private Sub Worksheet_Change(ByVal zz As Range)
If Intersect(zz, [E2:E100]) Is Nothing Then Exit Sub
Application.EnableEvents = False
zz = UCase(zz)
Application.EnableEvents = True
End Sub


Private Sub Worksheet_Change(ByVal zz As Range)
If Intersect(zz, [D2😀100]) Is Nothing Then Exit Sub
Application.EnableEvents = False
zz = Application.WorksheetFunction.Proper(zz)
Application.EnableEvents = True
End Sub

Je voudrai que ces codes fonctionnent en même temps, est-ce possible ?
Merci d'avance...

Cordialement
 
Dernière édition:
Re : Création macro - Première lettre en majuscule à la saisie

Bonjour Max
Essayez ceci, vous m'en direz des nouvelles :
Code:
[COLOR=DarkSlateGray][B]Private Sub Worksheet_Change(ByVal zz As Range)
  If Not Intersect(zz, [E2:E100]) Is Nothing Then
    Application.EnableEvents = False
    zz = UCase(zz)
    Application.EnableEvents = True
  ElseIf Not Intersect(zz, [D2:D100]) Is Nothing Then
    Application.EnableEvents = False
    zz = WorksheetFunction.Proper(zz)
    Application.EnableEvents = True
  End If
End Sub[/B][/COLOR]
ROGER2327
#4663


Jeudi 5 Sable 138 (Sainte Savate, avocate, SQ)
15 Frimaire An CCXIX
2010-W48-7T02:03:32Z
 
Dernière édition:
Re : Création macro - Première lettre en majuscule à la saisie

Suite...
...mais plus sûr sera :
Code:
[B][COLOR=DarkSlateGray]Private Sub Worksheet_Change(ByVal zz As Range)
Dim cel As Range
  If Not Intersect(zz, [E2:E100]) Is Nothing Then
    Application.EnableEvents = False
    For Each cel In Intersect(zz, [E2:E100]).Cells
      cel = UCase(cel)
    Next cel
    Application.EnableEvents = True
  End If
  If Not Intersect(zz, [D2:D100]) Is Nothing Then
    Application.EnableEvents = False
    For Each cel In Intersect(zz, [D2:D100]).Cells
      cel = WorksheetFunction.Proper(cel)
    Next cel
    Application.EnableEvents = True
  End If
End Sub[/COLOR][/B]
ROGER2327
#4664


Jeudi 5 Sable 138 (Sainte Savate, avocate, SQ)
15 Frimaire An CCXIX
2010-W48-7T02:15:03Z
 
Dernière édition:
Re : Création macro - Première lettre en majuscule à la saisie

Re...
(…)
C'est le deuxième que j'ai essayé...
(…)
Et vous fîtes fort bien, car la première est stupide.
En effet, on déclare zz de type Range et on écrit un peu plus loin UCase(zz) et WorksheetFunction(zz). Or l'argument de ces fonctions est de type String. Dès que zz désigne une plage de plus d'une cellule, le plantage est assuré. Comme on a placé un magnifique Application.EnableEvents = False juste avant, la catastrophe est encore plus belle !

Bon dimanche !
ROGER2327
#4667


Jeudi 5 Sable 138 (Sainte Savate, avocate, SQ)
15 Frimaire An CCXIX
2010-W48-7T10:19:41Z
 
- 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

Retour