Bonjour,
J'ai fait un petit code pour la mise en forme de mes graphs, il s'agit de modifier l'épaisseur du tracé. Tout fonctionne c'est tout simple.
- La procédure est lancée avec l'évènement Change.
- Les graphs sont dans la feuille 2.
Lorsque la procédure s’exécute et que je suis dans la feuille 2, les 2 graphs se mettent à jour.
MAIS, lorsque la procédure s'exécute depuis la feuille 1 -> code identique dans feuil1 et feuil2 (évenement change) avec un trigger dans la feuille 1.
Lorsque je vais dans la feuille 2 pour voir mes graphs, je ne vois que le graph1 à jour. Il faut que je change d'onglet puis que je revienne à nouveau dans la feuille 2 pour que le graph2 se mette à jour.
Pourquoi?? :weird:
Merci à vous si vous avez des explications. :)
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 Private Sub Worksheet_Change(ByVal Target As Range) 'Trigger dans la "feuil1" AdrCell = Target.Address 'récupère adresse cellule dans variable Select Case AdrCell Case "$B$4" ', "une autre cellule", "encore une".... Sheets("feuil2").ChartObjects("Graphique 2").Activate 'les graphs sont dans la feuille 2 With ActiveChart .FullSeriesCollection(1).Format.Line.Weight = 2 * Sheets("feuil3").Range("D11").Value 'épaisseur série de donnée 1 (valeur dans la feuille 3 mais peu importe) .FullSeriesCollection(2).Format.Line.Weight = 2 * Sheets("feuil3").Range("D12").Value 'épaisseur série de donnée 2 .Refresh 'le .Refresh ne change rien à mon problème End With Sheets("feuil2").ChartObjects("Graphique 1").Activate 'pareil pour le deuxième graph With ActiveChart .FullSeriesCollection(1).Format.Line.Weight = 2 * Sheets("feuil2").Range("I5").Value .FullSeriesCollection(2).Format.Line.Weight = 2 * Sheets("feuil2").Range("I6").Value .Refresh End With With Worksheets("feuil1") 'Pour remettre le curseur sur la cellule trigger (ne pas perturber l'utilisateur) .Activate 'je ne sais pas s'il y a une meilleure méthode mais ça fonctionne .Range(AdrCell).Activate End With End Select End Sub
