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)
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...
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
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
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
Partager