Bonjour à tous,
j'ai besoin de créer une macro qui sauvegarde une feuille Excel en format PDF dans un dossier "Bons de commande" sur mon desktop.
J'ai trouvé et adapté ce code mais le nom du fichier ne marche pas (il met toujours le nom du fichier Excel d'origine.pdf mais le nom du fichier devrait être généré par la valeur de la cellule B4 du Feuil appelé DonnéesMacro):
Vu que j'ai commencé hier avec les macros, je ne suis pas sûr de la ligne ===> Fich = Sheets("DonnéesMacro").Range("B4").Value
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 Sub SavePdf() Dim Chemin As String, Fich As String, Rep As String, CheminComplet As String Chemin = "c:\Users\" & Environ("username") & "\Desktop\Bons de commande" Fich = Sheets("DonnéesMacro").Range("B4").Value CheminComplet = Chemin & "\" & Fich & ".pdf" Rep = Dir(Chemin & "\" & Fich & ".pdf") If Rep = "" Then réponse = MsgBox("Voulez-vous enregistrer votre bon de commande en PDF ?", vbYesNo) If réponse = vbYes Then MsgBox "Le fichier a été enregistré sur votre bureau dans le dossier 'Bons de commande'" Impression: ChDir Chemin ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Rep, _ Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _ :=False, OpenAfterPublish:=False Else MsgBox "Fin de la sauvegarde" Exit Sub End If Else Réponse1 = MsgBox("Votre bon de commande a déjà été enregistrer sous ce nom. Souhaitez-vous le remplacer ?", vbYesNo) If Réponse1 = vbYes Then MsgBox "Votre fichier a été enregistré en remplaçant le fichier précédent." GoTo Impression Else MsgBox "Fin de la sauvegarde" End If End If End Sub
En plus dans la dite cellule il n'y a pas une valeur 'pure' mais il y a une formule. Excel accepte cela comme argument où il faut que je copie et je colle/spécial juste la valeur ?
Savez-vous me dire où je me trompe ?
Merci beaucoup,
Federico
Partager