Mise en majuscule auto de 3 colonnes

  • Initiateur de la discussion Initiateur de la discussion Geinoch
  • 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 !

Geinoch

XLDnaute Occasionnel
Bon j'ai ça comme formule:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [G5:G65536]) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target = UCase(Target)
If Intersect(Target, [K5:K65536]) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target = UCase(Target)
If Intersect(Target, [O5:O65536]) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target = UCase(Target)
Application.EnableEvents = True
End Sub

Malheureusement, seulement une des trois devient en majuscule =(

Que faire?

J'attend vos lumières! =)
 
Re : Mise en majuscule auto de 3 colonnes

Bonsoir Geinoch

je parierais que c'est la colonne g tu sors sur le 1er controle s'il est pas vérifié, essaye comme ci dessous :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("G5:G65536,K5:K65536,O5:O65536")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target.Value = UCase(Target.Value)
Application.EnableEvents = True
End Sub

bonne soirée
@+
 
Re : Mise en majuscule auto de 3 colonnes

Re

bizarre chez moi ca fonctionne, tu l'as bien mis dans le module de la feuille concernée et c'est le seul événement change dans ce module... sinon test en mettant un point d'arrêt sur la 1ère ligne...les procédure événementielles ne sont pas désactivées, lances la ligne de code ci dessous toute seule avant /

Code:
Application.EnableEvents = True

@+
 
Re : Mise en majuscule auto de 3 colonnes

Bonsoir,

Une autre approche utilisant une astuce de Pierrot93😉
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If InStr("7,11,15", Target.Column) = 0 Then Exit Sub
Application.EnableEvents = False
Target.Value = UCase(Target.Value)
Application.EnableEvents = True
End Sub
Cordialement
 
Re : Mise en majuscule auto de 3 colonnes

Bonsoir Spitnolan 🙂

je n'ai pas souvenir de l'avoir utilisé en l'état, mais bravo ca marche, très bonne utilisation, il faut aménager pour autoriser les modifs à partir de la ligne 5.. bonnne soirée
@+
 
Re : Mise en majuscule auto de 3 colonnes

Re,

Il faut juste ajouter une ligne (à laquelle a pensé Pierrot dans son code) pour éviter un bug qui bloque ensuite toute exécution d'évènement :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If InStr("7,11,15", Target.Column) = 0 Then Exit Sub
Application.EnableEvents = False
Target.Value = UCase(Target.Value)
Application.EnableEvents = True
End Sub
Seul bémol : ce code, comme celui de Pierrot, ne modifie que la cellule en cours. S'il faut modifier toutes les cellules des 3 colonnes il faut l'adapter.

Cordialement
Edit :
il faut aménager pour autoriser les modifs à partir de la ligne 5
Je ne comprends pas ??? No problem... Mais content que l'utilisation te plaise🙂😉
 
Re : Mise en majuscule auto de 3 colonnes

C'est parfait comme ca... Un autre fichier ce servira de ce excel et fait la lecture de ces colonnes ainsi que le tri... Mais il triait aussi les majuscule des minuscule alors j'ai du normaliser le tout =)
 
Re : Mise en majuscule auto de 3 colonnes

Re

regarde la question initiale, il commence à la ligne 5 (G5 K5 O5)...

pour le fun, en considérant une modifiation multiple :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
If InStr("7,11,15", c.Column) = 0 Then Exit Sub
If InStr("1,2,3,4", c.Row) <> 0 Then Exit Sub
Application.EnableEvents = False
c.Value = UCase(c.Value)
Application.EnableEvents = True
Next c
End Sub

bonne soirée
@+

Edition enlevé la ligne 5 qui doit être traitée..

attention avec le for each dans ce cas, si modification sur feuille entière ca peut être long...
 
Dernière édition:
Re : Mise en majuscule auto de 3 colonnes

Re,
Autant pour moi, j'avais mal interprété ta formulation :
il faut aménager pour autoriser les modifs à partir de la ligne 5
Je croyais que le code n'autorisait pas les modif à partir de la ligne 5...😛
Donc ta nouvelle proposition comble ce vide.🙂

Sinon pour ce qui est de :
je n'ai pas souvenir de l'avoir utilisé en l'état
En tout cas je ne l'ai pas vu... Mais je trouve ton code original et son utilisation très pratique et il m'est apparu comme une évidence dans ce cas! Alors que j'oublie souvent l'instruction INTERSECT...

Bien cordialement
 
- 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

  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
328
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
519
Réponses
4
Affichages
232
Réponses
4
Affichages
427
Retour