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

Résolu/Fermé
Elphara Messages postés 7 Date d'inscription lundi 22 juin 2020 Statut Membre Dernière intervention 26 juin 2020 - 22 juin 2020 à 11:59
Elphara Messages postés 7 Date d'inscription lundi 22 juin 2020 Statut Membre Dernière intervention 26 juin 2020 - 26 juin 2020 à 09:27
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
A voir également:

4 réponses

Yoyo01000 Messages postés 1639 Date d'inscription samedi 2 février 2019 Statut Membre Dernière intervention 7 mars 2022 165
22 juin 2020 à 12:05
Bonjour,
sans fichier et sans pouvoir visualiser votre code, il va être difficile de vous aider !
0
Elphara Messages postés 7 Date d'inscription lundi 22 juin 2020 Statut Membre Dernière intervention 26 juin 2020
22 juin 2020 à 12:10
Oui pardon, je n'arrivais pas à partager le fichier, j'allais mettre le code dans mon message principal
0
Elphara Messages postés 7 Date d'inscription lundi 22 juin 2020 Statut Membre Dernière intervention 26 juin 2020
22 juin 2020 à 12:36
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
0
Elphara Messages postés 7 Date d'inscription lundi 22 juin 2020 Statut Membre Dernière intervention 26 juin 2020
26 juin 2020 à 09:27
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
0