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

Macro avec double fonction

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

alain18

XLDnaute Occasionnel
Bonsoir,
J'aimerai savoir s'il est possible qu'une macro permette d'effectuer 2 actions différentes avec le même bouton de commande.
Je m'explique, en cliquant une 1ère fois sur le bouton de commande d'une macro celle-ci masque des lignes du tableur (jusque là rien de compliqué), mais à l'inverse en cliquant une 2ème fois sur le même bouton de commande de cette macro que celle-ci affiche les lignes qui avait été masquées précédemment.
Si un spécialiste a une idée....
Merci.
 
Bonsoir
Oui c'est possible
VB:
Sub VisibleMasque()
'
' VisibleMasque Macro
'
    If Range(Cells(3, 1), Cells(3, 1)).EntireRow.Hidden = False Then
        Range("3:3,7:7,11:11,15:15,19:19,23:23,27:27").Select
        Selection.EntireRow.Hidden = True
    Else
        Rows("3:27").Select
        Selection.EntireRow.Hidden = False
    End If
End Sub
 

Pièces jointes

Dernière édition:
Bonsoir alain18, laurent950,

Se servir du texte (bouton de formulaire) ou du Caption (bouton ActiveX) comme repère.

En fonction de ce repère l'une ou l'autre action sera exécutée.

Nombreux exemples sur le forum.

A+
 
Bonsoir Laurent950 , job75
Merci de me confirmer que cela est possible, mais je ne vois pas comment lier les 2 macros sur le même bouton.
Je mets un exemple en copie qui ferme seulement mais pour la suite, je ne sais pas faire.
Merci
 

Pièces jointes

Re,

Affecter cette macro au bouton :
Code:
Sub Bouton_Click()
With ActiveSheet.DrawingObjects(Application.Caller)
    Rows("5:11").Hidden = .Text = "Fermer"
    .Text = IIf(.Text = "Fermer", "Ouvrir", "Fermer")
End With
End Sub
A+
 
Bonsoir Laurent950 , job75
Merci de me confirmer que cela est possible, mais je ne vois pas comment lier les 2 macros sur le même bouton.
Je mets un exemple en copie qui ferme seulement mais pour la suite, je ne sais pas faire.
Merci
VB:
Sub VisibleMasque()
'
' VisibleMasque Macro
'
    If Range(Cells(5, 1), Cells(5, 1)).EntireRow.Hidden = False Then
        'Sub fermer()
        'Range("3:3,7:7,11:11,15:15,19:19,23:23,27:27").Select
        Rows("5:11").Select
        Selection.EntireRow.Hidden = True
        'Range("B12").Select
    Else
        ' Sub ouvrir()
        'Rows("3:27").Select
        Rows("4:12").Select
        Selection.EntireRow.Hidden = False
        'Range("B5").Select
    End If
End Sub
 
Bonjour Eric
Merci pour cette solution vraiment simple.... pour vous bien sûr !
Si je n'abuse pas trop de votre temps, pourriez vous en quelques mots m'expliquer le fonctionnement de ce code.
Cordialement.
 
les lignes 5:11 (Rows("5:11").Hidden) prennent l'état inverse de la ligne 5 ( = Not Rows(5).Hidden).
Si elle est visible, elles se masquent, et inversement.

C'est l'équivalent de la proposition de job75, sauf que lui modifie le libellé du bouton en plus.
eric
 
- 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
2
Affichages
556
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…