optimiser un code fait avec l'enregistreur

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

pascal21

XLDnaute Barbatruc
Code:
Sub Macro1()

    With Selection.Font
        .Name = "Calibri"
        .FontStyle = "Normal"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .ThemeFont = xlThemeFontMinor
    End With
    With Selection.Interior
        .Pattern = xlNone
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
End Sub
Sub Macro2()
    With Selection.Font
        .Name = "Calibri"
        .FontStyle = "Normal"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = 0
        .ThemeFont = xlThemeFontMinor
    End With
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = -0.499984740745262
        .PatternTintAndShade = 0
    End With
End Sub
bonjour comme vous l'avez sans doute compris ce code très bavard sort de l'enregistreur de macro
son but colorier en gris et police blanche et la suivant enlever couleur de fond et police automatique (noir)
je n'arrive pas à faire en sorte que sur un clic droit, macro1 et si re-clique droit, macro2
c'est pour la zone de cellules T4:W4
merci de votre aide
 
Re : optimiser un code fait avec l'enregistreur

Hello pascal21,

Je te propose la macro suivante, faite par moi-même et beaucoup plus allégée que celle fournie par ton enregistreur de macro. Elle fait également office d'interrupteur.

Code:
Sub interrupteur()

    Set plage = Sheets(1).Range("T4:W4")
    plage.Select
    
    If Selection.Font.ColorIndex = 2 Then
        With Selection
            .Font.ColorIndex = 1
            .Interior.ColorIndex = 0
        End With
    ElseIf Selection.Font.ColorIndex = 1 Then
        With Selection
            .Font.ColorIndex = 2
            .Interior.ColorIndex = 16
        End With
    End If
    
End Sub
On définis la plage de cellules concernées. On effectue une vérification : si la couleur du texte des cellules de la sélection est blanche alors on passe le texte en noir et le fond de la cellule en blanc ; en revanche si le texte est écrit en noir alors on le passe en blanc et le fond de la cellule en gris.

Cordialement, Mat'
 
Re : optimiser un code fait avec l'enregistreur

Bonjour Pascal, Patichoux,

Pour le clic droit, il vaux mieux utiliser ça :

VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Not Application.Intersect(Target, Range("T4:W4")) Is Nothing Then
  If Target.Font.ColorIndex <> xlAutomatic Then
    Target.Font.ColorIndex = xlAutomatic
    Target.Interior.Pattern = xlNone
    Target.Interior.PatternTintAndShade = 0
  Else
    Target.Font.ThemeColor = xlThemeColorDark1
    Target.Interior.ThemeColor = xlThemeColorDark1
    Target.Interior.TintAndShade = -0.499984740745262
  End If
End If
End Sub

A+

Martial
 
- 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

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
483
Réponses
9
Affichages
585
  • Question Question
Microsoft 365 colorer une plage
Réponses
2
Affichages
872
Réponses
22
Affichages
3 K
Réponses
8
Affichages
1 K
Retour