Une cellule écrite en minuscule, la mettre automatiquement en majuscule

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

P

pepsister

Guest
Bonjour,

J'ai un fichier d'adhérents dans lequel je dois mettre une adresse. Pour la colonne ville, j'ai mis une liste déroulante avec toutes les villes alentours en majuscules avec la possibilité d'écrire une ville qui n'est pas dans cette liste.
Je voudrais par contre forcer les majuscules de telle manière que si je rentre une ville qui n'est pas dans la liste elle soit automatiquement mise en majuscule. Comment puis-je faire ca? Je pense que la macro est obligatoire non? Si c'est possible sans macro je préfèrerais mais je ne trouve pas.
Merci de votre aide
 
Re : Une cellule écrite en minuscule, la mettre automatiquement en majuscule

Bonjour,

essaye peut être ceci, procédure événementielle à placer dans le module de la feuille concernée => click droit sur l'onglet => visualiser le code, s'appliquera à la colonne A :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Or Target.Count > 1 Then Exit Sub
With Application
    .EnableEvents = False
    Target = UCase(Target)
    .EnableEvents = True
End With
End Sub

bonne journée
@+
 
Re : Une cellule écrite en minuscule, la mettre automatiquement en majuscule

Bonjour tout le monde,

Autre proposition (même démarche) :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Range(Target.Address).Select
    If Selection.Cells.Count > 1 Then Exit Sub
    Range(Target.Address).Value = VBA.UCase(Range(Target.Address).Value)
End Sub
 
Re : Une cellule écrite en minuscule, la mettre automatiquement en majuscule

Merci ca marche impeccable, par contre je voudrais le faire pour plusieurs colonnes, j'ai essayé avec:

If Target.Column <> 5 Or Target.Count > 5 Or Target.Column <> 11 Or Target.Count > 11 Then Exit Sub
mais là plus aucun des deux ne fonctionnent

j'ai aussi essayé:
If Not Intersect(Target, Columns("E:E","K:K")) Is Nothing Then Exit Sub
et là il me met en mode déboguage avec une erreur de compilation 13

Sachant que je dois le faire pour cinq colonnes environ avez vous une idée de comment rationnaliser la chose et éviter de répéter plusieurs fois l'instruction Target.column ... (et encore même avec cette solution je n'y arrive pas, mais je dois recontrer un pb de syntaxe car il n'y a pas de raison que ca ne marche pas de cette manière)

Merci encore!
 
Re : Une cellule écrite en minuscule, la mettre automatiquement en majuscule

Re,

essaye ceci :
Code:
If Target.Column <> 5 And Target.Column <> 11 Or Target.Count > 1 Then Exit Sub

A noter "Target.Count" sert à controler le nombre de cellules modifiées afin d'éviter un plantage si action sur une szlection multiple....

Edition : un "And" au lieu du "Or"
 
Dernière édition:
Re : Une cellule écrite en minuscule, la mettre automatiquement en majuscule

Bon je ne comprends plus rien, ma fonction majuscule ne marche plus sans que j'ai pu toucher a ce code.

Là j'ai repris celle du début où je suis sure qu'elle marchait:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 5 Then Exit Sub
With Application
.EnableEvents = False
Target = UCase(Target)
.EnableEvents = True
End With
End Sub

et même ca, ca ne marche plus. Tout reste en minuscule.

Quelqu'un sait-il pourquoi?
 
Re : Une cellule écrite en minuscule, la mettre automatiquement en majuscule

Bonjour,

Si tu l'as arrêtée au milieu tu n'as pas rétabli la supervision des évènements avec application.enableEvents=true
Crée-toi un petit sub avec juste cette ligne pour la rétablir et re-teste.

eric
 
Re : Une cellule écrite en minuscule, la mettre automatiquement en majuscule

a priori oui puisque maintenant ca remarche.

Merci.

Faut il que je mette ta ligne de code dans ma macro pour qu'il se réinitialise à chaque fois et éviter le plantage?
 
Re : Une cellule écrite en minuscule, la mettre automatiquement en majuscule

Re,

le mieux est de savoir se qui a provoqué l'erreur ???? post #2 je proposais :
Code:
If Target.Column <> 1 Or Target.Count > 1 Then Exit Sub
pour éviter le plantage si modification plusieurs cellules...

bon après midi
@+
 
Re : Une cellule écrite en minuscule, la mettre automatiquement en majuscule

Re,

pour relancer les événements si plantage :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 5 Or Target.Count > 1 Then Exit Sub
On Error GoTo fin
With Application
    .EnableEvents = False
    Target = UCase(Target)
fin:
    .EnableEvents = True
End With
End Sub
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour