Mise en majuscule auto de 3 colonnes

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! =)
 

Pierrot93

XLDnaute Barbatruc
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
@+
 

Pierrot93

XLDnaute Barbatruc
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

@+
 

Spitnolan08

XLDnaute Barbatruc
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
 

Pierrot93

XLDnaute Barbatruc
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
@+
 

Spitnolan08

XLDnaute Barbatruc
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:);)
 

Geinoch

XLDnaute Occasionnel
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 =)
 

Pierrot93

XLDnaute Barbatruc
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:

Spitnolan08

XLDnaute Barbatruc
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...:p
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
 

Discussions similaires

Réponses
1
Affichages
239

Statistiques des forums

Discussions
312 164
Messages
2 085 867
Membres
103 007
dernier inscrit
salma_hayek