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...