XL 2019 Afficher et masquer un ou plusieurs graphiques en fonction d'une valeur de cellule

thibaut93800

XLDnaute Nouveau
Bonjour,

Je cherche à l'aide d'une macro d'afficher ou de masquer des graphiques en fonction de la valeur d'une cellule

La valeur C4 de la feuil 2 peut aller de 1 à 6.
La valeur C4 de la feuil 2 peut être saisie directement (dans le cas d'un nouveau dossier) mais elle peut venir d'un dossier de l'année précédente (à ce moment là, la valeur C4 va chercher directement la valeur G3 de la feuil1.

Je cherche à faire:
- apparaitre le graphique 2 si la valeur de C4 de la feuille 2 est 1 et masquer les autres
- apparaitre le graphique 2 et 3 si la valeur de la cellule C4 est 2, etc..

Je pense que je mis prend mal car je débute dans la macro. Mais pour moi faut bien que j'utilise worksheet calculate pour que la macro s'active automatiquement sans avoir besoin de clic ou autre sur la cellule C4. Après il faut peut être que j'indique la feuille où se trouve les graphiques

Je vous joint le fichier test.

Quelqu'un a t'il une idée?

Merci d'avance
 

Pièces jointes

  • TEST - MASQUER GRAPHIQUE.xlsm
    27.5 KB · Affichages: 14

Phil69970

XLDnaute Barbatruc
Bonjour Thibaut, le forum

Essaye cela :

A mettre dans la feuille 2 à la place de ton code
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Application.Intersect(Target, Range("C4")) Is Nothing Then
    Select Case [C4]
    Case "1"
        Sheets("Feuil3").ChartObjects("Graphique 2").Visible = True
        Sheets("Feuil3").ChartObjects("Graphique 3").Visible = False
        Sheets("Feuil3").ChartObjects("Graphique 4").Visible = False
    Case "2"
        Sheets("Feuil3").ChartObjects("Graphique 2").Visible = True
        Sheets("Feuil3").ChartObjects("Graphique 3").Visible = True
        Sheets("Feuil3").ChartObjects("Graphique 4").Visible = False
    Case "3"
        Sheets("Feuil3").ChartObjects("Graphique 2").Visible = True
        Sheets("Feuil3").ChartObjects("Graphique 3").Visible = True
        Sheets("Feuil3").ChartObjects("Graphique 4").Visible = True
    Case Else
        Sheets("Feuil3").ChartObjects("Graphique 2").Visible = True
        Sheets("Feuil3").ChartObjects("Graphique 3").Visible = True
        Sheets("Feuil3").ChartObjects("Graphique 4").Visible = True
    End Select
End If
End Sub
@Phil69970
 

thibaut93800

XLDnaute Nouveau
Bonsoir Phil,

Merci pour ta réponse cela fonctionne. Je l'ai juste modifié pour qu'elle s'active automatiquement.
Car si je copie les données d'un ancien dossier dans la feuille 1, la macro ne s'activait pas.

Private Sub Worksheet_Calculate()
Select Case [C4]

Case "1"
Sheets("Feuil3").ChartObjects("Graphique 2").Visible = True
Sheets("Feuil3").ChartObjects("Graphique 3").Visible = False
Sheets("Feuil3").ChartObjects("Graphique 4").Visible = False
Case "2"
Sheets("Feuil3").ChartObjects("Graphique 2").Visible = True
Sheets("Feuil3").ChartObjects("Graphique 3").Visible = True
Sheets("Feuil3").ChartObjects("Graphique 4").Visible = False
Case "3"
Sheets("Feuil3").ChartObjects("Graphique 2").Visible = True
Sheets("Feuil3").ChartObjects("Graphique 3").Visible = True
Sheets("Feuil3").ChartObjects("Graphique 4").Visible = True
Case Else
Sheets("Feuil3").ChartObjects("Graphique 2").Visible = True
Sheets("Feuil3").ChartObjects("Graphique 3").Visible = True
Sheets("Feuil3").ChartObjects("Graphique 4").Visible = True

End Select
End Sub

Un grand merci à toi, je vais pouvoir avancer.

Bonne soirée
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 892
Membres
101 831
dernier inscrit
gillec