Bonjour,
Tout d'abord un grand MERCI à tous pour votre aide qui a toujours été forte utile
Il y a peu de temps j'ai découvert (merci Eriic!!!) qu'il était possible possible d'ouvrir une 2° session excel ce qui peut faciliter la tâche...
Perso je fais des essais en ce moment et le code suivant ne performe pas du tout de la même façon suivant les versions excel et windows mais surtout attention de ne pas bloquer votre ordi en testant...
Cette discussion pour essayer de résoudre des questions svp:
Pour le moment je bute sur la taille de la feuille graphique dans le classeur de la 2° session Excel car autant les feuilles de calcul excel classique sont de taille 100% autant le graphique lui s'affiche à 115% et pas moyen de le faire revenir à 100% car la fenêtre active n'est pas celle du graphique...pourtant Activewindow.zoom existe, ou même pagesetup.zoom...
voici le code:
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
45
46
47
48
49
50
51
52 Dim Excel2 As Object Dim wb2 As Workbook Sub Recap() 'pour tester la création d'une 2° session Excel Dim sh2 As Worksheet Dim graph2 As Chart elmnt = "test_graph1" Set Excel2 = CreateObject("Excel.Application") Excel2.Visible = True reper1 = ThisWorkbook.Path reper1 = reper1 & "\test_excel" On Error Resume Next MkDir reper1 Err.Clear On Error GoTo 0 flnc = reper1 & "\" & elmnt & ".xls" Set wb2 = Excel2.Workbooks.Add Excel2.Application.DisplayAlerts = False Excel2.ActiveWorkbook.SaveAs Filename:=flnc, FileFormat:=xlExcel8, CreateBackup:=False Excel2.Application.DisplayAlerts = True wb2.Sheets.Add(Before:=wb2.Sheets("Feuil1")).Name = "Test" Set sh2 = wb2.Sheets("Test") With sh2 .Cells(1, 2).Value = "Nombre" .Cells(1, 3).Value = "Quantité" For i = 0 To 20 .Cells(i + 2, 2).Value = i .Cells(i + 2, 3).Value = 2 * i Next End With sh2.Cells(1, "M").Select Set graph2 = wb2.Charts.Add 'la feuille graphique est à 115%!!! wb2.ActiveChart.ChartType = xlXYScatterLines wb2.ActiveChart.Name = "Graph1" wb2.ActiveChart.SeriesCollection.NewSeries wb2.ActiveChart.SeriesCollection(1).Formula = _ "=SERIES('Test'!C1,'Test'!B2:B" & 22 & " ,'Test'!C2:c" & 22 & ",1)" graph2.Activate ActiveWindow.Zoom = 100 'ne réduit pas la taille de la feuille graphique toujours zoomée à 115% 'wb2.ActiveChart.Zoom = 100 'ne marche pas graph2.PageSetup.Zoom = 100 'ne réduit pas la taille de la feuille graphique toujours zoomée à 115% wb2.Save wb2.Close Excel2.Application.DisplayAlerts = False Excel2.Visible = False Set Excel2 = Nothing End Sub
Partager