Comment utiliser une 2° session Excel
Bonjour,
Tout d'abord un grand MERCI à tous pour votre aide qui a toujours été forte utile:roll::roll::roll:
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:
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 |