Bonjour,
je suis nouveau sur le forum, j'ai un petit soucis au niveau de la création d'une macro Excel.
Contexte : Je dois faire une impression pdf d'un fichier Excel grace à "Cut pdf writer" et le stocker sur le réseau. "Cut pdf writer" met par défaut le fichier pdf dans "mes documents"
Mon PB : Plantage de la macro aléatoire, soit au niveau de la fermeture de la fenêtre d'enregistrement, soit au niveau de la copie du fichier.
Ma première version de 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 ' Récupération du nom du fichier Sheets("RESULTAT").Select Range("F7").Select fichier = ActiveCell 'commande impression pdf pour création du fichier dans mes documents Application.ActivePrinter = "CutePDF Writer sur CPW2:" ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, _ ActivePrinter:="CutePDF Writer sur CPW2:", Collate:=True 'timer pour laisser le temps au sytéme d'ouvrir la fenetre Start = Timer Do While Timer < Start + 15 Loop SendKeys fichier & "{ENTER}", False ' timer pour que le systéme ait le temps de créer le fichier PDF Start = Timer Do While Timer < Start + 30 DoEvents Loop ' copie du fichier pdf vers le serveur R puis destruction du fichier dans mes documents Dim SourceFile, DestinationFile SourceFile = "C:\Documents and Settings\Bastien\Mes documents\" & fichier & ".pdf" DestinationFile = "C:\Documents and Settings\Bastien\Mes documents\Mes images\" & fichier & ".pdf" FileCopy SourceFile, DestinationFile ' timer pour que le systéme ait le temps de copier le fichier PDF Start = Timer Do While Timer < Start + 10 DoEvents Loop 'Destruction du fichier source (dans mes documents) Kill SourceFile ' Fermeture automatique d'excel Application.Quit
Ma deuxième version de code : (qui fonctionne mieux que la V1, mais toujours pas fiable)
Si quelqu'un voit des anomalies.... Merci bcp.
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 Sub Macro1() 'Récupération du nom de fichier Sheets("Feuil1").Select Range("F7").Select fichier = ActiveCell 'Commande impression pdf Application.ActivePrinter = "CutePDF Writer sur CPW2:" ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, _ ActivePrinter:="CutePDF Writer sur CPW2:", Collate:=True 'timer pour laisser le temps au sytéme d'ouvrir la fenetre Start = Timer Do While Timer < Start + 15 Loop SendKeys "test" & "{ENTER}", False 'timer pour que le systéme ait le temps de créer le fichier PDF Start = Timer Do While Timer < Start + 30 DoEvents Loop 'copie du fichier pdf vers le serveur R puis destruction du fichier dans mes documents Dim SourceFile, DestinationFile SourceFile = "C:\Documents and Settings\Bastien\Mes documents\test.pdf" DestinationFile = "C:\Documents and Settings\Bastien\Mes documents\Mes images\" & fichier & ".pdf" FileCopy SourceFile, DestinationFile 'timer pour que le systéme ait le temps de copier le fichier PDF Start = Timer Do While Timer < Start + 10 DoEvents Loop 'Destruction du fichier source (dans mes documents) Kill SourceFile 'Fermeture automatique d'excel Application.Quit
Partager