Export d'un graphique d'un classeur à un autre
Bonjour,
Voici le problème auquel je suis confronté : je dispose d'un classeur (appelons-le "classeur maître") au sein duquel je défini (sur un onglet nommé "AFIN_par_défaut") un tableau à partir de données se trouvant dans un autre onglet "Data" de ce même classeur. A partir de ce tableau, je créé un graphique (toujours sur ce classeur "maître").
J'ai ensuite rédigé une macro me permettant de copier le contenu de cet onglet "AFIN_par_défaut" dans N autres classeurs Excel (appelons-les "classeurs esclaves"). Après l'exécution de cette macro, chaque "classeur esclave" est donc doté d'un onglet dénommé "AFIN_par_défaut". L'export des données se réalise correctement (i.e : le contenu du tableau ainsi copié est bien mise à jour à partir des données se trouvant dans l'onglet "Data" du classeur "esclave" courant) sauf la partie graphique. En effet, les données à partir duquel le graphique est définie restent "attachées" au classeur "maître". Or je souhaiterai que ce graphique utilise comme données, celles du tableau de ce classeur "esclave".
Le code de la macro utilisée se trouve ci-dessous. Dans cette macro, le nom du classeur maître est "Analyse_financiere.xlsm" et les noms des classeurs esclaves (où sont copiées les données) s'appellent "Tableau_suivi_XXX.xlsm" (où XXX varie d'un fichier à l'autre).
Auriez-vous une idée pour résoudre ce problème ?
Merci d'avance,
bonne journée à tous.
JBR.
Sub Reinitialisation_AFIN_par_defaut()
' Cette macro permet de ré-nitialiser les onglets "AFIN_par_défaut" des fichiers "Tableau_suivi_XXX.xlsm"
' Désactive l'ouverture de fenêtre de messages
Application.DisplayAlerts = False
Dim nb_file As Long
'Lecture du nombre de fichier que l'utilisateur souhaite traiter
nb_file = Workbooks("Analyse_financiere.xlsm").Worksheets("Parametrage").Range("B3")
'Lecture du nom du répertoire où se trouve les fichiers à traiter
REPERTOIRE = Workbooks("Analyse_financiere.xlsm").Worksheets("Parametrage").Range("B2")
'Boucle sur les nb_file classeurs fichiers à traiter
For i = 1 To nb_file
'Lecture du i-ème nom du fichier à traiter
FICHIERENTREE = Workbooks("Analyse_financiere.xlsm").Worksheets("Parametrage").Range("A" & 5 + i)
' ETAPE 1 : purger le contenu de 'onglet "AFIN_par_défaut"
'Ouverture du fichier à traiter
Workbooks.Open Filename:=REPERTOIRE & FICHIERENTREE & ".xlsm", Format:=5
' Désactive l'ouverture de fenêtre de messages
Application.DisplayAlerts = False
' suppression de l'ancien onglet "AFIN_par_défaut"
Sheets("AFIN_par_défaut").Delete
'création d'un nouvel onglet
Set nouvelonglet = Sheets.Add(After:=Sheets(Sheets.Count))
'renommage du nom de cet onglet par "AFIN_par_défaut"
nouvelonglet.Name = "AFIN_par_défaut"
'Sauvegarde du fichier
ActiveWorkbook.Save
'Fermeture du fichier
ActiveWorkbook.Close
'MsgBox "Fichier n°" & i & "\" & nb_file & " à ouvrir : " & FICHIERENTREE & Chr(13) & _
" situé dans le répertoire : " & REPERTOIRE
' selection de la partie à copier
Sheets("AFIN_par_défaut").Select
Range("A1:Z3000").Select
Selection.Copy
'Ouverture du fichier à traiter
Workbooks.Open Filename:=REPERTOIRE & FICHIERENTREE & ".xlsm", Format:=5
'Activation de l'onglet "AFIN_par_défaut"
Sheets("AFIN_par_défaut").Activate
' désactive tous les filtres de l'onglet courant
ActiveSheet.AutoFilterMode = False
' Selection de la plage où l'on souhaite copier les données
Range("A1:Z3000").Select
' Coller
ActiveSheet.Paste
'Sauvegarde du fichier
ActiveWorkbook.Save
'Fermeture du fichier
ActiveWorkbook.Close
Next
End Sub