Ecrire en majuscule de façon obligatoire

Bonjour,

On m'a conseillé de créer un nouveau post pour continuer un ancien post ( datant de 2012 ) . ( https://forum.excel-pratique.com/post477974.html#p477974)

La problématique était de pouvoir demander à Excel par l'intermédiaire de VBA d'ecrire tout le temps en majuscule .

La réponse avait été la suivante :

Salut,

Voici un petit code en VBA a titre d'exemple:

1- Ouvez Excel et positionne toi sur l'onglet désiré. (fait un test sur excel vide)

2- Appuis sur ALT+F11 (pour ouvrir editeur VBA)

3- Copie colle le code suivant

4-Tape des minuscules dans la colonne A ou sur la ligne 1 ==> Elles sont tranformés en maj après validation de la saisie

Code: Tout sélectionner

'Si on a modifié l'onglet Feuil1

Private Sub Worksheet_Change(ByVal Target As Range) 'Fonction se declenche dès que l'on a modifié le

'contenu de la feuille/ Target renvoi l'adresse où a eu lieu la modification

'exemple 1

If Target.Row = 1 Then 'Si la modification a été effectuée sur la ligne 1 alors on met tout en majuscule

Target.Value = UCase(Target.Value) 'On met en majuscule

End If

'exemple 2

If Target.Column = 1 Then ''Si la modification a été effectuée sur la Colonne 1 (A) alors on met tout en majuscule

Target.Value = UCase(Target.Value) 'On met en majuscule

End If

End Sub

Pour info : Sur le site : Cours VBA est très bien fait avec des exemples etc...

Si tu as du mal a le mettre en place, envoi un fichier excel d'exemple (anonymisé), on pourra adapter le code.

++

Bigdams

Ma question était la suivante :

Mais je n'ai pas tout compris de la mise en œuvre de votre méthode .

Je sélectionne une colone et j'appuie sur le Alt+F11 .

Ceci s'affiche :

sans titre

Je fais ensuite copier coller mais ceci s'affiche :

sans titre1

Mais rien de se passe dans mon document . Que dois-je faire ?

Merci d'avance

Salut,

Tu colle ce code dans ton "thisworkbook"

Dès que tu actualise (tout ce que tu écris en minuscule se transformera en majuscule) => Attention je dis bien tout ce que tu écris ,pas tout ce que tu as déjà écris.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
   Target.Value = UCase(Target.Value)
End Sub

C'est cela que tu cherche ? (et quand je dis tout c'est que même ce que tu veux en minuscule va basculer en majuscule avec ce code)

Effectivement, ca fonctionne très bien . Merci beaucoup .

Existe-il un moyen de faire la même opération pour des éléments qui sont déjà ecrit ?

De plus, si j'ai bien compris, si je veux appliquer ceci pour une seule colonne, je dois mettre ce code à la place .

'exemple 2

If Target.Column = 1 Then ''Si la modification a été effectuée sur la Colonne 1 (A) alors on met tout en majuscule

Target.Value = UCase(Target.Value) 'On met en majuscule

End If

End Sub

Oui il faudra que tu ajoute de mettre en majuscule seulement si la condition "être dans la colonne 1" est remplie donc c'est bien If target.column = 1.

Après pour mettre le déjà existant en majuscule il faut manipuler un peu le code et faire quelques chose du type

Range("A1:Z100").select

Selection.value = Ucase(Selection.value)

Tu clique et normalement tu aura mis en majuscule la sélection (je dis normalement car je n'ai pas testé avant de te le dire contrairement au code précédent)

Ca ne fonctionne pas. Mais votre aide a été précieuse et je vous en remercie .

Bonne journée à vous .

J'ai une petite difficultée .

En effet, lorsque j'enlève une valeur , voilà ce que j'ai:

sans titre sans titre1

Comment puis-je faire pour éviter ceci ?

Merci d'avance

Bonjour,

Essaie ainsi en vérifiant le numéro des colonnes à surveiller.

Cdlt.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    Select Case Target.Column
        Case 6, 8, 10, 11, 12, 16
            Target.Value = UCase(Target.Value)
        Case Else
            '
    End Select
End Sub

(Bonjour,

pourquoi ne pas utiliser directement une police d'écriture qui soit tout en majuscules?)

Bonjour Jumeau,

Existe-il un moyen de faire la même opération pour des éléments qui sont déjà ecrit ?

Dans le Visual Basic, insère un module, et colle la syntaxe suivante:

Sub Majuscules()
For Each c In Selection
If Not c.HasFormula Then
c.Value = UCase(c.Value)
End If
Next c
End Sub

Ensuite va ds ton fichier, sélectionne tout ce que tu veux mettre en majuscule et active la macro Majuscules.

Cette syntaxe sert pour ce qui est déjà écris.

En Espérant que ça va vous aider.

Jean

macro majuscule

Tout d'abord, je vous remercie pour votre aide !!!

Jean-Eric,

Malheureusement , ce message s'affiche encore :s

capture2 capture

Moé Kolisse , je vous remercie, ça fonctionne très bien !!

Bonjour Jumeau,

Tester ce fichier pour vos Majuscule.

J'ai mis les explications dans VB et photo sur votre tableau.

Tout ce que vous écrivez dans les Colonnes C & D, vont se mettre automatiquement en Majuscule.

En plus, je vous ai mis un suggestion pour la Numérotation Automatique.

En Espérant que ça va vous aider.

Jean

Wouah cela fonctionne super bien . J'ai une dernier question et j'en ai fini . Quelle est la syntaxe si je souhaite ajouter la colonne H ?


En tout ca, je vous remercie pour votre réponse très complete .

Bonjour Jumeau,

Regardez si ça vous convient.

Jean

Si je comprends bien sil suffit de rajouter un virgule ?

Bonjour Jumeau,

Non, il faut plus qu'une virgule, je vous ai mis une photo avec les explications dans le fichier que je vous ai joint.

Il y a deux changements à faire.

Changer (Target, Columns("C:D")) par (Target, Range("C3:D300,H3:H300")) à deux endroit.

Au Plaisir,

Jean

jumeau

D'accord , je comprends.

Je souhaiterais rendre encore plus facile d'utilisation mon Excel , notamment pour la partie sélection de la plage de la Macro majuscule . Je souhaiterais créer un bouton qui mettrai en route la macro et qui indique ensuite qu'il faut choisir la sélection voulu .

Comment puis-je faire ceci ? Pouvez-vous me donner des piste ?


Je pense qu'il faut que je rajoute une MsgBox qui dirait " Choisissez la sélection voulu " .

Mais ce qui me pose problème, c'est que la macro s'active après avoir cliquer sur le bouton et après avoir lu ce message .


De plus, je vous remercie déjà pou votre aide précise et pertinente .

Bonjour Jumeau,

Je souhaiterais rendre encore plus facile d'utilisation mon Excel , notamment pour la partie sélection de la plage de la Macro majuscule . Je souhaiterais créer un bouton qui mettrai en route la macro et qui indique ensuite qu'il faut choisir la sélection voulu . Je pense qu'il faut que je rajoute une MsgBox qui dirait " Choisissez la sélection voulu " .

Mais ce qui me pose problème, c'est que la macro s'active après avoir cliquer sur le bouton et après avoir lu ce message .

Pour le Message Box, je ne sais pas le faire.

Je vous ai fait un bouton avec le message sur le bouton et s'active en cliquant dessus.

De mon côté, je trouve plus simple d'utilisation. À vous de voir.

Au Plaisir.

Jean.

Bonjour,

Oui , vous avez raison, je suis d'accord avec vous .

Normalement , c'est bon, je n'ai plus de questions . Je vous remercie beaucoup pour votre aide et vous souhaite une bonne journée

Excusez-moi de vous dérangez de nouveau,

J'ai adapté votre méthode sur un autre document

puis j'ai voulu changer la formule des colonnes concerner par la mise en majuscule mais ça m'a fait ça :

sans titre

Que faire ?

Ce document est trop gros, savez-vous comment je peux faire pour vous l'envoyer ?

Rechercher des sujets similaires à "ecrire majuscule facon obligatoire"