Excel a cessé de fonctionner --> Automation ?
Bonjour à toutes et à tous
J'ai créé des macros qui me permettent de traiter des données.
Le but étant d'avoir un fichier source qui génère des onglets via des données (ça c'est bon). Ensuite j'ai effectué une macro qui ouvre un nouveau classeur (dans un nouveau processus) et dans lequel je copie colle les données pour créer 3 graphiques par classeur. Et cela enregistre chaques classeurs dans un dossier spécifique (en local)
Cependant, j'ai des "plantages" aléatoires parfois au deuxième classeur, parfois au 8eme... ect
avec un message Excel a cessé de fonctionner, et parfois une erreur : Erreur d'automation ; le serveur distant n'existe pas ou n'est pas disponible
voici une partie du code (j'ai enlevé la partie où cela créé les graphiques pour que ce ne soit pas imbuvable)
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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| Sub CreationGraphe1()
Dim MonGraphe As Chart
Dim MonGraphe2 As Chart
Dim MonGraphe3 As Chart
Dim MaPlage1 As Range
Dim MaPlage2 As Range
Dim M As ChartObject
Dim cel As Range
Dim ws As Worksheet
Dim wscount As Integer
Dim I As Integer
Dim derlign As Integer
Dim Onglet As Byte
Dim SourceG As Range
Dim SourceG2 As Range
Dim SourceG3 As Range
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim Book As Excel.Workbook
Dim Dossier As String
wscount = ActiveWorkbook.Worksheets.Count
' Onglet = ActiveSheet.Name
For I = 3 To wscount
'On créer l'objet Excel
Set xlApp = CreateObject("Excel.Application")
'on rend le classeur visible
xlApp.Visible = True
'On défini le nombre d'onglets (ici 1)
xlApp.SheetsInNewWorkbook = 1
'On ajoute un classeur
Set xlBook = xlApp.Workbooks.Add
ThisWorkbook.Sheets(I).Activate
Range("Q2") = "CT JUSTIFIEE"
Range("Q3") = "CT DECADREE"
Set MaPlage1 = Sheets(I).Range(Cells(2, 17), Cells(3, 17))
Set MaPlage2 = Sheets(I).Range(Cells(2, 18), Cells(3, 18))
Set SourceG = xlBook.Sheets("Feuil1").Range("Q2:R3")
ThisWorkbook.Sheets(I).Range("M1:R15").Copy
xlBook.Sheets("Feuil1").Range("M1:R15").Value = ThisWorkbook.Sheets(I).Range("M1:R15").Value
Set MonGraphe = xlBook.Charts.Add
''''''''''''''''''''''''''''''''''''
'ici c'est la création des trois graphiques que je copies et je colle sur la même feuille
''''''''''''''''''''''''''''''''''''''
xlApp.DisplayAlerts = False
xlBook.SaveAs Filename:="D:\NMA\" & ThisWorkbook.Sheets(I).Name, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
xlApp.Quit
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
Next I
End Sub |
Il est vrai que le fichier source est assez lourd (+ de 600 onglets) et que la création des 3 graphiques et l'enregistrement classeur par classeur est surement également lourd...
Merci de me dire si vous avez des idées ? des améliorations ? des conseils ? des remarques ?
je suis preneur ! surtout qu'étant débutant, j'espère n'avoir choqué personne (car on doit le sentir que je débute !;))
Matt qui vous remercie par avance