Autres (RESOLU)Masquer / Afficher des boutons par clic

chaelie2015

XLDnaute Accro
Bonjour Forum
Mon souci est :
quand je clic sur le bouton "Effacer" alors afficher le bouton "Valider" et masquer le bouton "Effacer" et vis versa.
Merci
 

Pièces jointes

  • CHARLIE Masquer afficher boutons.xlsm
    11.2 KB · Affichages: 5
Solution
Re,
Ou avec un seul bouton.
Permet d'avoir deux macros distinctes pour traiter les actions Valider et Effacer, avec :
VB:
Sub Appui_Bouton()
    Nom = Application.Caller
    With ActiveSheet.Shapes(Nom)
        If .TextFrame.Characters.Text = "Valider" Then
            .Fill.ForeColor.RGB = RGB(110, 170, 70)
            .TextFrame.Characters.Text = "Effacer"
            Macro_Valider
        Else
            .Fill.ForeColor.RGB = RGB(240, 120, 50)
            .TextFrame.Characters.Text = "Valider"
            Macro_Effacer
        End If
    End With
End Sub

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Chaelie,
Une solution simple parmi d'autres :
VB:
Sub ONOFF_Effacer()
    ActiveSheet.Shapes("Groupe 1").Visible = False
    ActiveSheet.Shapes("Groupe 5").Visible = True
End Sub
Sub ONOFF_Valider()
    ActiveSheet.Shapes("Groupe 1").Visible = True
    ActiveSheet.Shapes("Groupe 5").Visible = False
End Sub
 

Pièces jointes

  • CHARLIE Masquer afficher boutons.xlsm
    14.5 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Ou avec un seul bouton.
Permet d'avoir deux macros distinctes pour traiter les actions Valider et Effacer, avec :
VB:
Sub Appui_Bouton()
    Nom = Application.Caller
    With ActiveSheet.Shapes(Nom)
        If .TextFrame.Characters.Text = "Valider" Then
            .Fill.ForeColor.RGB = RGB(110, 170, 70)
            .TextFrame.Characters.Text = "Effacer"
            Macro_Valider
        Else
            .Fill.ForeColor.RGB = RGB(240, 120, 50)
            .TextFrame.Characters.Text = "Valider"
            Macro_Effacer
        End If
    End With
End Sub
 

Pièces jointes

  • CHARLIE Masquer afficher boutons V2.xlsm
    15.2 KB · Affichages: 3

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Tant qu'on y est, je propose un mélange de #2 et #4 en pièce jointe. ;)


Le classeur de #5 de sylvanu me semble parfait.
Ceci dit, je viens de constater un truc bizarre chez moi, et vu que je ne sais pas comment on crée un joli bouton comme tu as fait avec le rond et le texte, du coup je ne sais pas si ce comportement est normal ou pas : quand je clique sur le rond, j'ai la première lettre qui apparait dans le rond et l'intérieur du rond qui change de couleur.
 

Pièces jointes

  • CHARLIE-Masquer-afficher-boutons_(TooFatBoy-v1).xlsm
    34 KB · Affichages: 3
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
TooFatBoy a dit :
Ceci dit, je viens de constater un truc bizarre chez moi, et vu que je ne sais pas comment on crée un joli bouton comme tu as fait avec le rond et le texte, du coup je ne sais pas si ce comportement est normal ou pas : quand je clique sur le rond, j'ai la première lettre qui apparait dans le rond et l'intérieur du rond qui change de couleur.
Du au fait qua application.caller renvoie le nom du shape et non le nom du groupe.
Donc obligé de référencer en dur le nom du shape, ce que je voulais éviter. :rolleyes:
VB:
Sub Appui_Bouton()
    NomRectangle = "Rectangle à coins arrondis 2"
    With ActiveSheet.Shapes(NomRectangle)
        If .TextFrame.Characters.Text = "Valider" Then
            .Fill.ForeColor.RGB = RGB(110, 170, 70)
            .TextFrame.Characters.Text = "Effacer"
            Macro_Valider
        Else
            .Fill.ForeColor.RGB = RGB(240, 120, 50)
            .TextFrame.Characters.Text = "Valider"
            Macro_Effacer
        End If
    End With
End Sub
 

Pièces jointes

  • CHARLIE Masquer afficher boutons V3.xlsm
    15.4 KB · Affichages: 4

sylvanu

XLDnaute Barbatruc
Supporter XLD
Application.caller renvoie le nom de l'objet sur lequel on a cliqué.
Le "dessin" de Chaelie est construit par deux shapes: un rectangle et un rond. Les deux groupés dans "Groupe15"
Moi, naïvement, je pensais que Application.caller me renverrais "Groupe15".
Que nenni, il renvoie soit "Rectangle..." ou "Ellipse..." donc je ne traitais que le shape donné par application.caller.
Donc si on cliqué sur le rond, j'exécutais la macro sur le rond, et non sur le rectangle.
 

Discussions similaires

Réponses
8
Affichages
354

Membres actuellement en ligne

Statistiques des forums

Discussions
314 499
Messages
2 110 249
Membres
110 711
dernier inscrit
chmessi