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):


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
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
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