Cacher/Afficher Bouton

dureiken

XLDnaute Junior
Bonjour,

dans le fichier joint vous verrez un bouton Reporting permettant de cacher/afficher certaines colonnes, et aussi de cacher/afficher 2 boutons. Seulement cela ne marche que pour cacher, et je n'arrive pas à afficher mes boutons lorsque je rétablis les colonnes.

J'utilise ce bout de code pour cacher, et pareil avec True pour afficher, je ne comprends donc pas pourquoi cela ne marche que dans un sens

Code:
        If Bouton = Reporting Then
            Sheets("En_Cours").Bouton_Annee.Visible = False
            Sheets("En_Cours").Bouton_Probable.Visible = False
        End If

Si vous avez une idée, merci d'avance :)
 

Pièces jointes

  • Cacher.zip
    28 KB · Affichages: 59
  • Cacher.zip
    28 KB · Affichages: 62
  • Cacher.zip
    28 KB · Affichages: 62

Épaf

XLDnaute Occasionnel
Re : Cacher/Afficher Bouton

Code:
Sub CacherAfficher(Debut As Variant, Fin As Variant, Bouton As Object)

    Columns(letcol(NumColonne(Debut, "En_Cours")) & ":" & letcol(NumColonne(Fin, "En_Cours"))).Select 'Rentrer ici les colonnes du tableau si elles sont différentes
    '***SI LES COLONNES SONT AFFICHEES
    Sheets("En_Cours").Bouton_Annee.Visible = Bouton.Value
    Sheets("En_Cours").Bouton_Probable.Visible = Bouton.Value
    Selection.EntireColumn.Hidden = Not Selection.EntireColumn.Hidden 'Si elles sont affichées on les cache
    Cells(1, 1).Select
    
End Sub
Juste pour montrer comment éviter le select case en utilisant les booléens (vrai ou faux). Tu peux également éviter la sélection des colonnes en indiquant simplement leur adresse.
Bonne journée

PS - Tu peux aussi remplacer cette ligne
Selection.EntireColumn.Hidden = Not Selection.EntireColumn.Hidden 'Si elles sont affichées on les cache
par
Selection.EntireColumn.Hidden = Not Selection.EntireColumn.Hidden
par
Code:
    Selection.EntireColumn.Hidden = Not Bouton.Value
 
Dernière édition:
G

Guest

Guest
Re : Cacher/Afficher Bouton

Bonjour Dureiken,

J'ai ouvert ton fichier mais ne suis pas sûr d'avoir tout compris même s'il me semble reconnaitre certaines choses (NumColonne).

Peux-tu me dire quand tu veux que les colonnes soient cachées:

Quand la case à cocher 'Reporting' est = True ?
où quand elle est à false?

Les boutons doivent-ils suivrent la même logique?

Telle qu'elle est écrite, tes colonnes pourraient être cachées et les boutons visibles et lycée de Versailles!

A+
A+
 

Épaf

XLDnaute Occasionnel
Re : Cacher/Afficher Bouton

A ma réponse précédente j'ajoute que mettre un objet en paramètre n'est pas très "économique". Dans Reporting_Click tu pourrais "n'envoyer" que la valeur de Reporting
Code:
Call CacherAfficher([Annee_En_Cours], [Total_Engage_En_Cours], Reporting.value)
que tu récupérerais en booléen dans CacherAfficher
Code:
Sub CacherAfficher(Debut As Variant, Fin As Variant, Bouton As Boolean)
Et à la place de Bouton.value, tu utilises dès lors Bouton.
 

dureiken

XLDnaute Junior
Re : Cacher/Afficher Bouton

@Epaf : j'ai plusieurs boutons en fait, planning reporting, etc ta dernière proposition ne marcherait pas. Concernant la simplification merci pour l'info.

@Hasco : colonnes cachées, bouton Reporting décoché et rouge, 2 boutons cachés. Et inversement
 
G

Guest

Guest
Re : Cacher/Afficher Bouton

re,

Ce serait pas plus logique de faire le contraire?
Partir de l'état de la case à cochée plutôt que de l'état caché des colonnes?
Case reporting Cochée -> affiche les colonnes et boutons
Case reporting décochée -> caches colonnes et boutons?

En attente de ta réponse.
A+
 
G

Guest

Guest
Re : Cacher/Afficher Bouton

Re,

Vois si cela convient:

Code:
Sub CacherAfficher(Debut As Variant, Fin As Variant, Bouton As Object)
    With Sheets("En_Cours")
        .Bouton_Annee.Visible = Bouton.Value
        .Bouton_Probable.Visible = Bouton.Value
        .Columns(letcol(NumColonne(Debut, "En_Cours")) & ":" & letcol(NumColonne(Fin, "En_Cours"))).Hidden = Not Bouton.Value
    End With
        Bouton.BackColor = IIf(Bouton.Value, &HFF00&, &HFF&)
End Sub

A+
 

Discussions similaires

Réponses
3
Affichages
248

Statistiques des forums

Discussions
312 492
Messages
2 088 912
Membres
103 983
dernier inscrit
AlbertCouillard