Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Regrouper deux macros en une

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 !

libellule85

XLDnaute Accro
Bonjour le forum,

Voilà, actuellement j'utilise 2 macros (ci-dessous) : pour Mettre et Enlever une image.
N'est-il pas possible de regrouper ces 2 actions dans la même macro ?

Code:
Sub ImageVisible(ByVal control As IRibbonControl)
ActiveSheet.Shapes("Image 4").Visible = True
End Sub

Sub ImageInvisible(ByVal control As IRibbonControl)
ActiveSheet.Shapes("Image 4").Visible = False
End Sub

D'avance merci pour votre aide
 
Dernière édition:
Re : Regrouper deux macros en une

Salut libellule85, le Forum

A tester

Code:
Sub ImageVisibleInvisible(ByVal control As IRibbonControl)
ActiveSheet.Shapes("Image 4").Visible = IIf(ActiveSheet.Shapes("Image 4").Visible = True, False, True)
End Sub

Bonne Journée
 
Re : [Résolu] Regrouper deux macros en une

Bonjour
Oui, ça marche, sans doute, mais ceci est plus élégant et plus ...logique :
VB:
Sub ImageVisibleInvisible(ByVal control As IRibbonControl)
With ActiveSheet.Shapes("Image 4"): .Visible = Not .Visible: End With
End Sub
Par ailleurs à quoi sert le paramètre control ? S'il designe le même objet :
VB:
Sub ImageVisibleInvisible(ByVal control As IRibbonControl)
control.Visible = Not control.Visible
End Sub
 
Re : Regrouper deux macros en une

Re bonjour le forum,

Je reprends mon fil, car j'aimerais regrouper également sur une même macro (si celà est possible ) la mise en forme d'une cellule dont vous trouverez les codes (macros réalisées avec l'enregistreur) ci-dessous :

Code:
Sub Effacer()
    Range("B10").Select
        Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    With Selection.Interior
        .Pattern = xlNone
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
       Range("A5").Select
End Sub

Code:
Sub RemettreLundi()
    Range("B10").Select
         With Selection.Borders(xlDiagonalDown)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlMedium
    End With
    With Selection.Borders(xlDiagonalUp)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlMedium
    End With
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = -0.14996795556505
        .PatternTintAndShade = 0
    End With
    Range("A5").Select
End Sub

Je vous joins également un fichier pour que vous voyez à quoi correspond ces codes.

D'avance je vous remercie beaucoup pour votre aide
 

Pièces jointes

Re : Regrouper deux macros en une

Bonjour libellule85 le forum
voilà je pense ce que tu veux
a+
Papou🙂

Code:
Sub test()
    With Range("B10")
        If .Interior.ColorIndex = 15 Then
        .Clear
        Else
            Range("B7").Interior.ColorIndex = 15
            .Borders.LineStyle = 1
            .Borders(5).LineStyle = 1
            .Borders(6).LineStyle = 1
        End If
    End With
End Sub
 
Re : Regrouper deux macros en une

Bonjour Paritec,

Merci pour ta réponse, mais ce n'est pas ce que je recherche.
Ce que j'aimerais c'est avoir sur la même macro la possibilité d'effacer et de remettre la mise en forme.
Par exemple la mise en forme (cellule barrée et fond gris) est dans la cellule B10 je veux qu'en cliquant sur le même bouton il n'y ai plus de mise en forme (plus de fond gris ni de barres à l'intérieur de la cellule) en B10.
 
Re : Regrouper deux macros en une

Bonjour Libellule 85 le forum
excuses moi mais avant de dire que c'est pas cela il serait peut-être bon que tu saches te servir de la macro !!!!!
alors je vais te la mettre dans le fichier car manifestement tu ne sais pas
voilà dans le fichier, par contre si tu veux des traits en gras redis le
a+
Papou🙂
 

Pièces jointes

Dernière édition:
Re : Regrouper deux macros en une

Bonjour Libellule85

Essaye avec ceci
Code:
Sub test()
  With Range("B10")
    If .Interior.ColorIndex = 15 Then
      .Interior.ColorIndex = xlNone
      .Borders(5).LineStyle = xlNone
      .Borders(6).LineStyle = xlNone
    Else
      Range("B10").Interior.ColorIndex = 15
      .Borders.LineStyle = 1
      .Borders(5).LineStyle = 1
      .Borders(6).LineStyle = 1
    End If
  End With
End Sub

A+
 
- 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

Réponses
9
Affichages
509
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…