Excel 2007 Mise en forme Majuscule sur des plages

Résolu/Fermé
Mouftie Messages postés 215 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 6 septembre 2020 - 6 févr. 2013 à 12:13
 mouftie - 12 févr. 2013 à 20:48
Bonjour,
Je voudrais que les saisies faites sur certaines plages de toutes les feuilles du classeur se mettent automatiquement en majuscule ; j'ai trouvé pleins de solutions, aucune ne fonctionne pour moi (toutes positionnées dans ThisWorkbook) :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:C3, A6:C7, A11:C14")) Is Nothing Then Target = UCase(Target)
End Sub

ou encore :
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
        'Converti les saisies en majuscule
        Target.Value = UCase(Target.Value)
End Sub

ou encore
Private Sub Worksheet_Change(ByVal Target As Range)
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
End Sub

Est-ce que qq'1 vcomprend mon pb et peut m'aider ?

A voir également:

3 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 8/02/2013 à 12:23
Bonjour
Si tes macros sont dans le module Thisworkbook, la syntaxe est par exemple
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 



Michel
0
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 306
8 févr. 2013 à 13:11
Bonjour,

je confirme ce que vient de dire Michel_m :
- les macros dans 'Thisworkbook' commencent par Workbook_
- les macros dans une feuille commencent par Worksheet_

Donc soit tu déplaces tes macros Worksheet sur la feuille concernée par la conversion en majuscules, soit tu les modifies selon ce qu'a gentiment indiqué michel_m.

Cordialement.
0
Mouftie Messages postés 215 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 6 septembre 2020 15
8 févr. 2013 à 14:01
Bonjour, Merci à vous deux.
Effectivement, comme débutante, j'ai encore du mal avec le choix pour inserrer le code.
Maintenant que j'ai mis, dans thisWorkbook,
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
        'Converti les saisies en majuscule
If Not Intersect(Target, Range("A1:s3, A6:s7, A11:s14")) Is Nothing Then Target = UCase(Target)
End Sub
si j'écris qq sur n'importe quelle feuille (dans les plages spécifiées), Excel converntit bien en majuscule, mais il moulinne en clignotant jusqu'à ce que j'échappe ou pause.
Pourquoi ?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 8/02/2013 à 14:15
C'est normal car ton déclenchement s'effectue lors d'un changement dans la cellule cible donc la macro mouline...
If Not Intersect(Target, Range("A1:s3, A6:s7, A11:s14")) Is Nothing Then  
     Application.EnableEvents = False  
     Target = UCase(Target)  
     Application.EnableEvents = True  
End If

Enableevents=False désamorce les événements délencheurs
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
11 févr. 2013 à 16:33
.... De rien
0
Merci Michel, C'est beaucoup mieux maintenant, désolée de ne pas avoir répondu plutôt, j'étais en déplacement.
0