Mettre une colonne entière en majuscule automatiquement

bonjour à tous, voila j'ai trouvé un code VBA pour mettre une colonne entière en majuscule et ce, dès qu'on rentre la moindre donnée dedans. Cependant, ça ne marche pas du tout de mon coté et je n'arrive pas à comprendre pourquoi.

Voici mon code et mon fichier, est ce que quelqu'un aurait une solution s'il vous plait?

en sachant que dans mon fichier réel, je vas avoir des cellules fusionnées qui vont jonchés la colonne visée, est ce problématique?

Merci d'avance pour vos retours.

Private Sub Worksheet_Change1(ByVal Target As range)

Dim testL As range

Dim Cel As range

Set testL = range("L1:L99")

For Each Cel In Plage

Cel = UCase(Cel)

Next

End Sub

Bonsoir,

deux choses (minimum)

la première le For Each cherche dans une collection que vous avez appelez "Plage" hors cette plage à aucun moment vous la définissez ni lui donnez une référence !

Après la fonction "Change" est lancée à chaque fois qu'il y a détection d'un "Change" sur la feuille, ce qui veut dire qu'en l'état votre fonction est "récursive" puisqu'à chaque cellule modifiée, la fonction va être rappelée, et ainsi de suite jusqu'à provoquer une erreur ! Pour éviter ceci il faut, par exemple, utiliser Application.EnableEvents = False pour arrêter la surveillance événementielle, mais attention ! Il faut la remettre à True sinon plus d'action possible sur la feuille !

Ensuite en mettant un "1" derrière Private Sub Worksheet_Change ne signifie pas que c'est une nouvelle fonction de surveillance d'Excel !

Donc voici un code qui fonctionne :

Private Sub Worksheet_Change(ByVal Target As range)
    Dim Plage As range
    Dim Cel As range
    Set Plage = range("L1:L99")
    Application.ScreenUpdating = False
    Application.EnableEvents = False
        For Each Cel In Plage
            Cel.Value = UCase(Cel.Value)
        Next
    Application.EnableEvents = True
End Sub

@ bientôt

LouReeD

Bonjour lou reed, beb54,

j'ai essayé mais çà met nom ambigu sur worksheet.

worksheetSelectionChange marche mais tremble, pendant 99 lignes non ?

et comme je connais pas bien les macros sans les boutons, j'en ai mis un en transformant le private sub en sub et çà fonctionne

68majuscules.xlsm (38.37 Ko)

a+

fronck

Bonsoir,

Un essai en Pj

Slts

95essai.xlsm (34.64 Ko)

Salut beb54, le fil

Ou alors tu affectes une police de caractères majuscule à ta colonne du style Copperplate Gothic Bold.

Bonsoir,

deux choses (minimum)

la première le For Each cherche dans une collection que vous avez appelez "Plage" hors cette plage à aucun moment vous la définissez ni lui donnez une référence !

Après la fonction "Change" est lancée à chaque fois qu'il y a détection d'un "Change" sur la feuille, ce qui veut dire qu'en l'état votre fonction est "récursive" puisqu'à chaque cellule modifiée, la fonction va être rappelée, et ainsi de suite jusqu'à provoquer une erreur ! Pour éviter ceci il faut, par exemple, utiliser Application.EnableEvents = False pour arrêter la surveillance événementielle, mais attention ! Il faut la remettre à True sinon plus d'action possible sur la feuille !

Ensuite en mettant un "1" derrière Private Sub Worksheet_Change ne signifie pas que c'est une nouvelle fonction de surveillance d'Excel !

Donc voici un code qui fonctionne :

Private Sub Worksheet_Change(ByVal Target As range)
    Dim Plage As range
    Dim Cel As range
    Set Plage = range("L1:L99")
    Application.ScreenUpdating = False
    Application.EnableEvents = False
        For Each Cel In Plage
            Cel.Value = UCase(Cel.Value)
        Next
    Application.EnableEvents = True
End Sub

@ bientôt

LouReeD

Bonjour loureed, merci beaucoup pour cette réponse et en effet ton code marche, mais il y a plusieurs seconde d'attente avant que la case s'actualise est ce normal? y-a-til un moyen de rendre plus rapide la chose?

Merci d'avance

Salut beb54, le fil

Ou alors tu affectes une police de caractères majuscule à ta colonne du style Copperplate Gothic Bold.

bonjour jean paul, il est vrai que cette solution serait plus simple mais incompatible avec mon utilisation car lorsque je fais des copier coller d'autre colonne qui ne comporte pas cette police, ça risque de remplacer la police existante et donc la mise en majuscule... qu'en dis tu? ^^

Bonsoir,

Un essai en Pj

Slts

Bonjour boss 68, merci beaucoup pour ta réponse tu résous le problème de rapidité dans l'application du code pour la mise en majuscule de la colonne.

par contre un autre soucis est apparu, c'est à dire que quand je sélectionne une case , la case sélectionné ne correspond pas à celle voulu.

L'exemple en est sur l'image en fichier joint, on ne voit pas mon curseur mais j'étais positionné sur la case A33 et en cliquant j'ai sélectionné le A35...et quand je ferme le fichier et le ré-ouvre, l'écart entre mon curseur et la case réellement sélectionné varie...

est ce normal?

Merci pour ta réponse en tout cas

probleme colonne majuscule

bonjour,

par contre un autre soucis est apparu, c'est à dire que quand je sélectionne une case , la case sélectionné ne correspond pas à celle voulu.

L'exemple en est sur l'image en fichier joint, on ne voit pas mon curseur mais j'étais positionné sur la case A33 et en cliquant j'ai sélectionné le A35...et quand je ferme le fichier et le ré-ouvre, l'écart entre mon curseur et la case réellement sélectionné varie...

Désolé j'ai beau essayé de te comprendre mais.... niet j'y arrive pas!

Il y a aussi un truc que je ne comprends pas..... pourquoi la colonne L en Maj

Slts

Bonsoir,

tout d'abord merci pour les réponses aux différents intervenants !

En effet il arrive qu'il n'y en ait aucune !

Pour ce qui est de mon code, je suis parti du votre en y ajoutant et en y enlevant ce qui me semblais "pas bon".

Maintenant, s'il faut un autre code, alors celui de boss_8 convient largement !

L'idée de Jean-Paul est bien vue, non ? Reste à savoir si cette police vous convient, mais au vu de la réponse, ce n'est pas la police qui pose problème. Je vais comme même garder l'idée en tête, sait-on jamais !

Pour votre erreur de sélection, cela m'est arrivé à la première ouverture de son fichier, mais après une deuxième tentative de téléchargement, tout est normal.

@ bientôt

LouReeD

Si tu passes par poser query tu peux tout passer en majuscule dans une colonne il me semble

bonjour,

par contre un autre soucis est apparu, c'est à dire que quand je sélectionne une case , la case sélectionné ne correspond pas à celle voulu.

L'exemple en est sur l'image en fichier joint, on ne voit pas mon curseur mais j'étais positionné sur la case A33 et en cliquant j'ai sélectionné le A35...et quand je ferme le fichier et le ré-ouvre, l'écart entre mon curseur et la case réellement sélectionné varie...

Désolé j'ai beau essayé de te comprendre mais.... niet j'y arrive pas!

Il y a aussi un truc que je ne comprends pas..... pourquoi la colonne L en Maj

Slts

Écoute mon problème avec ta solution à l'air d'être parti d'elle même, je te remercie pour ta proposition!

j'ai par contre encore un dernier hic, c'est que je n'arrive pas à sectionner plusieurs tranches de cellule type [C1:C1000] et [D1:D1000]. Comment les articuler en terme d'écriture pour que le tri s'effectue sur ces deux plages de sélection?

merci d'avance

Bonjour,

Écoute mon problème avec ta solution à l'air d'être parti d'elle même, je te remercie pour ta proposition!

j'ai par contre encore un dernier hic, c'est que je n'arrive pas à sectionner plusieurs tranches de cellule type [C1:C1000] et [D1:D1000]. Comment les articuler en terme d'écriture pour que le tri s'effectue sur ces deux plages de sélection?

merci d'avance

Majuscule ou de tri? puisque à l'origine ton post était ciblé sur les majuscules alors que maintenant tu parles de tri

Mettre un fichier à la dispo avec explication

Slts

Bonjour,

Écoute mon problème avec ta solution à l'air d'être parti d'elle même, je te remercie pour ta proposition!

j'ai par contre encore un dernier hic, c'est que je n'arrive pas à sectionner plusieurs tranches de cellule type [C1:C1000] et [D1:D1000]. Comment les articuler en terme d'écriture pour que le tri s'effectue sur ces deux plages de sélection?

merci d'avance

Majuscule ou de tri? puisque à l'origine ton post était ciblé sur les majuscules alors que maintenant tu parles de tri

Mettre un fichier à la dispo avec explication

Slts

en effet c'est une faute de frappe je ne veux pas trier mais bien mettre en majuscule. dans mon fichier test (ne pas faire attention à toute les formules parfois fausses..) je voudrais mettre plusieurs colonnes par pages en majuscule, mais je n’arrive pas à écrire correctement les plages ciblés pour qu'excel me comprenne.

petite précision, la feuille 4 comportent les bonnes formules pour la mise en majuscule notamment.

Bonjour

Voir Pj

Sur Feuil1

Colonne B,

C,

H,

I,

N,

O,

Sont en majuscules

Sur Feuil3

Colonne B,

C,

N,

O,

Sont en majuscules

Sur Feuil4

Colonne C,

D,

L,

Sont en majuscules

Bonjour

Voir Pj

Sur Feuil1

Colonne B,

C,

H,

I,

N,

O,

Sont en majuscules

Sur Feuil3

Colonne B,

C,

N,

O,

Sont en majuscules

Sur Feuil4

Colonne C,

D,

L,

Sont en majuscules

Bonjour,

As tu essayé avec Power query plutot que les macros?

Bonjour

Voir Pj

Sur Feuil1

Colonne B,

C,

H,

I,

N,

O,

Sont en majuscules

Sur Feuil3

Colonne B,

C,

N,

O,

Sont en majuscules

Sur Feuil4

Colonne C,

D,

L,

Sont en majuscules

merci beaucoup c'est exactement ce que je voulais je vais pouvoir organiser après mes tableaux en fonction de mes besoins

Bonnes fêtes de fin d'année

Rechercher des sujets similaires à "mettre colonne entiere majuscule automatiquement"