Enregistrement fichier Excel en PDF

Bonjour à tous,

Je cherche une fonction à rajouter dans ma macro d'enregistrement d'un fichier EXCEL en PDF, avec un contrôle du nom du fichier PDF (si déjà existant) de manière à pouvoir le modifier.

Voici ma macro qui fonctionne bien pour un enregistrement classique.

Sub Export_PDF()

Dim Fichier As String

'adaptez le nom de la feuille

With Worksheets("Formulaire FC")

Fichier = "Demande_FC_n°" & .Range("G10") & ".pdf"

'pensez a ecrire le chemin

Chemin = Rep & "\\C:\Users\clima\Desktop\SUIVI_FC\PDF\" & Fichier

.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin, Quality:=xlQualityStandard, _

IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

End With

End Sub

Merci à tous pour votre aide

Charly

Bonjour,

Il faut utiliser

If Dir(Chemin+Nomfichier) <>"" Then
' Changer le nom
End if

A+

Merci, tu la placerais ou cette commande?

Charly

Re,

Réfléchi juste 2s

Désolé, je le tourne dans tous les sens sans succès...

je reformule ma demande.

J'enregistre des fichiers PDF avec pour NOM la référence d'un produit.

1500001, 1500002, etc...

Il arrive que je modifie le document EXCEL du même produit (évolution du produit) et j'enregistre à nouveau un PDF sous le même NOM et c'est à ce moment là que je voudrais prendre la main et modifier le NOM (ex: 150001-2). Pour cela il faudrait faire un contrôle du fichier PDF s'il est existant et proposer de changer de nom ou pouvoir enregistrer sous...

Charly

Re,

Voici le code testé et fonctionnel

Sub Export_PDF()
  Dim Chemin As String, Fichier As String, NouveauNom As String
  Dim sDir As String, Inc As Integer
  'adaptez le nom de la feuille
  With Worksheets("Formulaire FC")
    Fichier = "Demande_FC_n°" & .Range("G10") & ".pdf"
    ' Pensez a ecrire le chemin
    Chemin = "C:\Users\clima\Desktop\SUIVI_FC\PDF\"
    ' Vérifier si le fichier existe déjà
    sDir = Dir(Chemin & Fichier)
    ' Tant que existe, incrémenter le nom
    Do While sDir <> ""
      ' Incrémenter le nom
      Inc = Inc + 1
      ' Définir le nouveau nom en changeant la fin avec l'incrément formaté
      NouveauNom = Replace(Fichier, ".pdf", "-" & Format(Inc, "000") & ".pdf")
      ' Vérifier la Directory
      sDir = Dir(Chemin + NouveauNom)
    Loop
    ' Si NouveauNom est vide, prendre le nom du fichier initial
    If NouveauNom = "" Then NouveauNom = Fichier
    ' Exporter le fichier
    .ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin & NouveauNom, Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
  End With
End Sub

A+

Merci Bruno,

Cependant le modèle ne fonctionne pas parfaitement.

J'ai une erreur. (voir copie d'écran).

Charly

capture

Salut,

Oula qu'est-ce que j'ai laissé comme erreur

Il faut remplacer le "+" par le "&"

Code rectifié dans le post précédent

Bonjour Bruno et encore pour ton aide,

Malgré toutes les corrections cela ne fonctionne toujours pas. Le code d'erreur est le même.

J'ai bien un "dossier" sur le bureau SUIVI_FC et à l'intérieur le fichier EXCEL et un dossier PDF.

Charly

capture

Si je mets des guillemets ==> sDir = Dir("Chemin & Fichier"), l'enregistrement du document fonctionne mais pas l'incrémentation ou changement de Nom

Re,

Ton chemin d'accès doit se finir par "\" et ne pas commencer par "\\" est-ce bien le cas !?

Voici, comment il devrait être

 Chemin = "C:\Users\clima\Desktop\SUIVI_FC\PDF\"

A+

Bonjour Bruno,

Là tout est bon. Cela fonctionne parfaitement.

Merci infiniment pour ton aide.

Rechercher des sujets similaires à "enregistrement fichier pdf"