Bonjour,
J'ai écrit une macro Excel il y a un petit moment déjà permettant d'enregistrer certains onglets d'un fichier Excel (choisi via une condition ) en PDF.
Pour se faire, je passe par un xls temporaire.
Cette macro fonctionnait jusqu'à vendredi.
En effet, depuis cet instant, un pop-up s'ouvre et me dit que le xls temporaire, est ouvert et verrouillé.
Si je continue, l'enregistrement PDF ne fonctionne plus, le fichier fait 2ko, et Foxit me dit que le fichier est corrompue
J'ai tout de même essayé de remplacer l'ouverture
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 Application.DisplayAlerts = False Chemin = ActiveWorkbook.Path temp_wbk = "Liste.xls" Mois = Format(Sheets(1).Range("B8"), "mm") Annee = Year(Sheets(1).Range("B8")) Annee_Mois = Mois & "_" & Annee ' Definition du chemin du fichier xls temporaire dest = Chemin & "\Format\" & temp_wbk doc_pdf = Chemin & "\Format\Format_Papier_" & Annee_Mois & ".pdf" 'Selection des feuilles a copier 'On créer l'objet Excel Set xlApp = CreateObject("Excel.Application") 'On défini le nombre d'onglets (ici 5) xlApp.SheetsInNewWorkbook = 5 'On ajoute un classeur Set xlBook = xlApp.Workbooks.Add 'On donne un nom au classeur xlBook.SaveAs (dest) 'On rend le classeur visible xlApp.Visible = True 'On créer l'objet onglet dans le nouveau classeur créé Set xlSheet = xlBook.Worksheets(1) Workbooks.Open (dest) ' Workbooks.Open Filename:= _ ' dest, _ ' ReadOnly:=True, _ ' IgnoreReadOnlyRecommended:=True For c = 1 To nbFeuilles Specifique1 = Workbooks(Second_wbk).Worksheets(1).Cells(c + 1, 2).Value If Specifique1 = 1 Or Specifique1 = 0 Then Workbooks(wbase).Worksheets(c).Copy Before:=Workbooks(temp_wbk).Worksheets(1) End If Next c 'Sauvegarde en PDF Workbooks(temp_wbk).ExportAsFixedFormat Type:=xlTypePDF, _ Filename:=doc_pdf, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=True 'Fermeture et suppresion du XLS temporaire Application.DisplayAlerts = False xlBook.Close False Kill (dest) Workbooks(Second_wbk).Close Falsepar
Code : Sélectionner tout - Visualiser dans une fenêtre à part Workbooks.Open (dest)
mais le pdf est toujours corrompu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Workbooks.Open Filename:= _ dest, _ ReadOnly:=True, _ IgnoreReadOnlyRecommended:=True
Merci d'avance,
Robin
Partager