Forcer majuscule
#1
Aspirant XLPages

Inscription: 27/02/2008
De Strasbourg

Messages: 25

Système d'exploitation:
PC
Version Excel utilisée:
2010
Posté le : 14-10-2011 11h39
Bonjour à tous 

cela va faire plusieurs jours que je me casse la tête à essayer de forcer des majuscules dans 
plusieurs cellules d'un tableau très simple.
J'ai parcouru le forum et j'ai trouvé des sujets mais sans réussir a les appliquer.

http://www.mdf-xlpages.com/modules/smartsection/item.php?itemid=82

http://www.mdf-xlpages.com/modules/smartfaq/faq.php?faqid=75

même avec ces liens je n'y arrive pas 

j'ai également essayé des macros trouvé sur le net mais là dans vba j'ai plus rien, mauvaise manip peut-etre,
alors que sur ma ma feuille je voulais simplement mette la 1er lettre majuscule automatiquement en:

A3 et B3  et les lettres en majuscule en H28 H31 H32 H33

Si quelqu'un pouvais éventuellement regarder la pièce et me dire pourquoi cela ne fonctionne pas

Cordialement









Pièce jointe:
xls patron.xls   [ Taille: 70.50 Ko - Téléchargements: 554 ]
Hors Ligne
Rapport   Haut 

Re: Forcer majuscule
#2
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 15-10-2011 00h53
Bonsoir 272129, le Forum,

Tout dépend de l'effet escompté...
  1. si tu veux obliger l'utilisateur à saisir au clavier selon le bon format (majuscules, etc...), tu peux effectivement passer par « Données / Validation » affichant une alerte en cas de mauvaise saisie, comme te le montre clairement l'article de notre amie Mth.
  2. si tu veux que le bon format s'applique automatiquement dans la cellule cible quelque soit la saisie de l'utilisateur, alors il te faut utiliser une procédure évènementielle VBA.

Tu trouveras en pièce jointe ton exemple modifié selon la seconde méthode (VBA).

J'ai utilisé le code suivant :

DANS LE MODULE DE CODE DE LA FEUILLE:
Option Explicit
'myDearFriend! - www.mdf-xlpages.com

Private Sub Worksheet_Change(ByVal Target As Range)
Static EnCours As Boolean
    'Pour éviter l'effet récursif du traitement
    If EnCours Then Exit Sub
    'Traitement
    EnCours = True
    If Not Application.Intersect(Target, Range("A3:B3,H28,H31:H33")) Is Nothing Then
        'Ne gère pas la multi-sélection de cellules (modification de plage entière)
        Set Target = Target(1)
        'Impose premier caractère en majuscule
        Target.Value = Application.Proper(Target.Value)
    End If
    EnCours = False
End Sub
 

S'agissant d'une procédure évènementielle (c'est une action utilisateur qui déclenche un évènement dans la feuille), il convient de placer cette procédure dans le module de code de la feuille elle-même.

Pour éviter un effet récursif dans ce traitement (l'évènement se déclenche sur modification d'une cellule, mais modifie lui-même la valeur de la cellule, ce qui provoque d'office une boucle sans fin... ou presque), j'ai fait appel à une variable déclarée Static (voir l'article VBA et les variables pour en découvrir la subtilité).

En espérant t'avoir aidé...

Cordialement,


Pièce jointe:
zip Pour272129.zip   [ Taille: 15.02 Ko - Téléchargements: 570 ]

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Forcer majuscule
#3
Aspirant XLPages

Inscription: 27/02/2008
De Strasbourg

Messages: 25

Système d'exploitation:
PC
Version Excel utilisée:
2010
Posté le : 15-10-2011 12h00
Bonjour,

Et surtout merci pour la rapidité, c’est exactement ce que voulais faire.
L’article sur les variablesVBA, difficile pour moi….

Merci
A bientôt 272129

Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes