Utilisation à la suite d'une même macro qui efface les précédentes utilisations [Résolu]

Signaler
Messages postés
7
Date d'inscription
lundi 22 juin 2020
Statut
Membre
Dernière intervention
26 juin 2020
-
Messages postés
7
Date d'inscription
lundi 22 juin 2020
Statut
Membre
Dernière intervention
26 juin 2020
-
Bonjour tous,

Dans le cadre de mon stage, je dois créer une base de données de matériaux qui seront réutilisées dans d'autres fichiers excel. Pour la faire la plus "user friendly", j'ai décidé de faire une macro qui à partir d'une feuille de référence, de créer une feuille qui sera remplie par l'utilisateur (je précise que mes connaissances en VBA sont assez faibles, mais c'est l'occasion de progresser). En plus de copier la feuille, cette macro prend les données (vides) pour faire deux graphiques puis copie ces graphiques dans une feuille où sont mis les graphes de tous les matériaux dont la fiche a été faite (et dont on peut sélectionner d'afficher ou non certaines courbes avec des check box)

A la première utilisation tout fonctionne bien (hormis l'attribution d'un nom à la check box avec une cellule, mais c'est subsidiaire).

Cependant lorsque je relance la macro (après avoir changé le nom de la feuille précédemment créée), il recréé bien une nouvelle feuille parfaitement mais efface les données de l'ancienne dans les graphiques communs.

Auriez-vous une solution à mon problème (et au passage celui de la check box, si vous avez envie)?


Merci d'avance, j'essaye vous joindre le fichier. Et n'hésitez surtout pas si vous avez des questions.

Raphaël

Configuration: Windows / Edge 17.17134

4 réponses

Messages postés
604
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
3 juillet 2020
53
Bonjour,
sans fichier et sans pouvoir visualiser votre code, il va être difficile de vous aider !
Messages postés
7
Date d'inscription
lundi 22 juin 2020
Statut
Membre
Dernière intervention
26 juin 2020

Oui pardon, je n'arrivais pas à partager le fichier, j'allais mettre le code dans mon message principal
Messages postés
7
Date d'inscription
lundi 22 juin 2020
Statut
Membre
Dernière intervention
26 juin 2020

ci le code et le fichier

https://www.cjoint.com/c/JFwkGlWa2QM

Sub NewSheet()
'
' NewSheet Macro
'
' Touche de raccourci du clavier: Ctrl+q
'
Sheets("Blank Datas").Select
Sheets("Blank Datas").Copy After:=Sheets(5)
ActiveWindow.SmallScroll Down:=21
ActiveSheet.ChartObjects("Graphique 10").Activate
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(1).XValues = "='Blank Datas (2)'!$S$6:$S$1800"
ActiveChart.FullSeriesCollection(1).Values = "='Blank Datas (2)'!$T$6:$T$1800"
ActiveWindow.SmallScroll Down:=39
ActiveSheet.ChartObjects("Graphique 11").Activate
ActiveSheet.ChartObjects("Graphique 11").Activate
Application.CutCopyMode = False
Application.CutCopyMode = False
ActiveChart.FullSeriesCollection(1).Name = "="
ActiveChart.FullSeriesCollection(1).Values = _
"='Blank Datas (2)'!$H$24,'Blank Datas (2)'!$K$24"
ActiveChart.FullSeriesCollection(1).XValues = _
"='Blank Datas (2)'!$I$25,'Blank Datas (2)'!$L$25"
Sheets(" Comparison Graph ").Select
ActiveWindow.SmallScroll Down:=-30
ActiveSheet.ChartObjects("Graphique 1").Activate
ActiveSheet.ChartObjects("Graphique 1").Activate
Application.CutCopyMode = False
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(2).Name = "='Blank Datas (2)'!$C$8"
ActiveChart.FullSeriesCollection(2).XValues = "='Blank Datas (2)'!$S$6:$S$1800"
ActiveChart.FullSeriesCollection(2).Values = "='Blank Datas (2)'!$U$6:$U$1800"
Static I As Long
I = I + 1
Cells(I + 4, 17).Select
ActiveSheet.CheckBoxes.Add(960, 73.5, 120, 17.25).Select
Application.CutCopyMode = False
With Selection
.Name = "='Blank Datas (2)'!$C$8"
.Value = xlOff
.LinkedCell = "'Blank Datas (2)'!$U$5"
.Display3DShading = True
End With
ActiveWindow.SmallScroll Down:=12
ActiveSheet.ChartObjects("Graphique 2").Activate
Application.CutCopyMode = False
Application.CutCopyMode = False
Application.CutCopyMode = False
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(2).Name = "='Blank Datas (2)'!$C$8"
ActiveChart.FullSeriesCollection(2).Values = _
"='Blank Datas (2)'!$H$25,'Blank Datas (2)'!$K$25"
ActiveChart.FullSeriesCollection(2).XValues = _
"='Blank Datas (2)'!$I$25,'Blank Datas (2)'!$L$25"
End Sub
Messages postés
7
Date d'inscription
lundi 22 juin 2020
Statut
Membre
Dernière intervention
26 juin 2020

Au final, en tâtant un peu j'ai trouvé une solution qui fonctionne (pas sûr que ce soit la meilleure ^^).
J'ai créé 2 variables:
Static T As Long
Dim C As Integer
C = 2 + T

Puis j'utilise cette variable C ici:
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(C).Name = "='Blank Datas (2)'!$C$8"
ActiveChart.FullSeriesCollection(C).XValues = "='Blank Datas (2)'!$S$6:$S$1800"
ActiveChart.FullSeriesCollection(C).Values = "='Blank Datas (2)'!$U$6:$U$1800"


Voilà! J'espère que mon problème en aidera d'autres

Raphaël