Bonjour,
Un autre problème, j'aimerai envoyer un graphique contenu d'un classeur excel contenu dans un objet, vers un nouveau classeur excel, et le tout sans macro de (re)création du graphique.
Simple question : est-ce possible ? Sinon, je saurai me débrouiller, mais ça va quand même prendre un peu de temps.
Pour expliquer mon code, en amont, mon objet contient une feuille, alimentée par une requête (avec en tête), et une feuille graphe qui se met à jour (selon le nombre de séries, données sources etc...) par macro excel décrite et donc adapté au VBA Access lors de l'activation de l'enregistrement (form_current) du formulaire global.
Dans mon code ci-dessous, l'exportation des données de l'objet classeur vers le nouveau classeur fonctionne bien, avec la création d'une feuille graphique.
J'aimerais donc que tout cet objet soit envoyé directement dans un nouveau classeur, en conservant la mise en forme du graphe, et par bonheur sans retoucher à la sélection des données sources, séries etc...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Private Sub Flotte_Trainer_export_graphe_Click() Dim appexcel As Excel.Application Dim oWb1 As Excel.Workbook, oWb2 As Excel.Workbook Dim oFeuille1 As Excel.Worksheet, oFeuille2 As Excel.Worksheet Dim oGraph1 As Excel.Chart, oGraph2 As Excel.Chart Set appexcel = CreateObject("Excel.Application") appexcel.Application.Visible = True 'Ouverture d'un fichier Excel Set oWb1 = appexcel.Workbooks.Add Set oWb2 = Forms.F_Pays.Flotte_fighter_graphe.Object Set oFeuille1 = oWb1.Worksheets(1) Set oFeuille2 = oWb2.Worksheets(1) Set oGraph1 = oWb1.Charts.Add 'création d'une feuille graphe Set oGraph2 = oWb2.Charts(1) 'là ça ne fait rien, la feuille graphique reste vide oFeuille1.Range("a1:l100").Value = oFeuille2.Range("a1:l100").Value 'kopikol de mes données 'début de typage du graphe au cas il le faudra, mais je m'y prends mal je viens de commencer 'Set oGraph1.ChartType = oGraph2.ChartType 'Set oGraph1.ChartArea = oGraph2.ChartArea 'Désallocation mémoire Set oFeuille1 = Nothing Set oFeuille2 = Nothing Set oWb1 = Nothing Set oWb2 = Nothing Set oGraph1 = Nothing Set oGraph2 = Nothing Set appexcel = Nothing End Sub
Partager