OK ma question sur les macros étaient un peu naïve mais en fait j'ai créé une macro pour éviter le bug suivant. J'aurais besoin de votre pour le résoudre, svp. Il s'agit d'un programme sur VB6 et non VBA.
Dans une 1ère procédure j'ouvre un classeur Excel déjà existant et je fais un graphique. Puis je copie ce graphique et dans la procédure suivante je le colle sur Word.
Le pb c'est que dans la 1ère procédure j'ajuste l'axe des ordonnées en fonction de valeurs extrêmes "haut" et "bas" de telle sorte que le graphique soit un minimum lisible !!!
A la première utilisation du programme tout marche bien dès la 2e c'est le drame ! Ça coince au niveau du "Activechart".
Je me suis dit que ça venait peut-être du fait que le graphique collé sur le document Word était aussi reconnu comme un Activechart et vu que le document n'est pas forcément fermé eh bien le programme ne sait plus où aller.
Je voudrais donc savoir si je pouvais "désactiver" le graphique collé sur Word de telle sorte que VB ne le détecte pas comme "activechart".
Voici la 1ère procédure :
J'ai essayé de mettre ceci avant "With ActiveChart.Axes(xlValue)" :
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
35
36
37
38
39
40
41
42
43
44 Public Sub graphe() Dim appExcel As Object Dim book As Object Dim sheet As Object Set appExcel = CreateObject("Excel.Application") appExcel.Visible = False 'ouvrir le classeur Excel pré-existant Set book = appExcel.Workbooks.Open("C:\classeur1.xls") Set sheet = book.Worksheets(1) 'j'envoie des données dans les cellules et le graphique déjà préparé se trace tout seul comme un grand... 'mais il faut ajuster l'axe des ordonnées pour que le graphe soit lisible ! 'Pour ce faire, je mets : ActiveChart.Axes(xlValue).Select 'c'est là que tout s'écroule... pfff!!! With ActiveChart.Axes(xlValue) .MinimumScale = CInt(bas) - 5 .MaximumScale = CInt(haut) + 5 .MajorUnit = 2.5 .Crosses = xlCustom .CrossesAt = CInt(bas) - 5 .ScaleType = xlLinear End With 'copier le graphique afin de le coller dans Word sheet.ChartObjects("Graphique 1").Copy 'fermer excel book.Close False DoEvents appExcel.Quit DoEvents Set sheet = Nothing DoEvents Set book = Nothing DoEvents Set appExcel = Nothing DoEvents End Sub
Mais rien n'y fait ! Mes graphiques sont maudits ! La seule différence c'est que le bug se situera à "ActiveChart.ChartArea.Select".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ActiveSheet.ChartObjects("Graphique 1").Activate ActiveChart.ChartArea.Select ActiveChart.Axes(xlValue).Select
HELP!!!
Partager