Macro pour afficher ou non des Graphiques

Bonjour (encore ^^'..),

Je me suis tenté d'afficher via une macro un graphique dans une feuille différente de là ou est le tableau, rien de compliqué, et c'est du réussi mais... je n'ai pas réussi en revanche à mettre une case a cocher pour que lorsque celle ci est activé, le graphique correspondant a la colonne coché s'affiche et sinon non. quand je la coche ca active la macro, mais c'est tout, et une fois....

je vous joint mon fichier, c'est un tableau un peu malléable, en ce sens ou si vous double cliquez sur une des 6 premières colonnes, les autres ne s'afficheront que si leur cellules est non vide pour la ligne en question.

EDIT : j'arrive avec les controles Activex a le faire, mais je ne sais pas comment supprimer uniquement le graphe lié a la case a cocher, possible de m'aider ?

Cordialement,

le code :

Private Sub CheckBox1_Click() If CheckBox1.Value = True Then 'Si coché ... Range("A7:B15").Select ActiveSheet.Shapes.AddChart2(227, xlLine).Select ActiveChart.SetSourceData Source:=Range("Feuil1!$A$7:$B$15") 'active la macro de création de graphique Else 'Si non coché ... With Feuil1.ChartObjects If .Count > 0 Then .Delete End With 'je ne sais que supprimer tous les graphiques... pas juste le précédent End If End Sub End Sub

Bonjour Romral

Je te propose :

  • De donner un nom aux 2 graphes : par exemple "MonGraph1", "MonGraph2"
  • Le code suivant :
Option Explicit
Private Sub CheckBox1_Click()
    If CheckBox1.Value = True Then
        CheckBox_Click 1, 2
    Else
        CheckBox_Click 2, 1
    End If
End Sub
Private Sub CheckBox2_Click()
    If CheckBox2.Value = True Then
        CheckBox_Click 2, 1
    Else
        CheckBox_Click 1, 2
    End If
End Sub
Sub CheckBox_Click(zi As Integer, zj As Integer)
    Dim o1 As Object, o2 As Object, oGraphe1 As Object, oGraphe2 As Object
    Set o1 = ActiveSheet.Shapes("CheckBox" & CStr(zi))
    Set o2 = ActiveSheet.Shapes("CheckBox" & CStr(zj))
    Set oGraphe1 = ActiveSheet.Shapes("MonGraph" & CStr(zi))
    Set oGraphe2 = ActiveSheet.Shapes("MonGraph" & CStr(zj))
    o1.OLEFormat.Object.Object.Value = True
    o2.OLEFormat.Object.Object.Value = False
    oGraphe1.Visible = True
    oGraphe2.Visible = False
End Sub

Je joins mon EXCEL de test.

c'est intéressant, mais quand je décoche, c'es l'autre du coup automatiquement qui se coche, donc ça colle pas.... sachant que j'ai 30 graphes associés a 30 boutons Activex, en revanche je les ai tous nommé.

Disons qu'avec ma config, je peux afficher plusieurs graphes en même temps, et en décochant une seul case, tout s'efface, c'est pas le plus gênant, mais ça serait plus propre si chaque décochage. AHHH mais je suis bête ! je n'ai qu'a faire appel pour supprimer

if 'cache coché

patatipatata

Else

Activesheet.Graphe_1.Delete

End If

Ca marcherait cela ? (je ne peux pas le tester pour le moment...)

Romral,

Pas sûr que tu as encore besoin de mon aide mais suis toujours là en cas de besoin...

Rechercher des sujets similaires à "macro afficher graphiques"