Créer un bouton cliquable pour exporter en PDF

rebonjour! je voudrais savoir comment peut-on créer un bouton cliquable pour exporter en PDF sur ma feuille excel ?

merci encore!

JL

Bonjour,

Une proposition.

Voir fichier (répertoire et nom fichier à déterminer).

Option Explicit
Private Sub cmdCreerPDF_Click()
Dim Répertoire As String, _
    Fichier As String, _
    feuille As Variant, _
    Nom As Name

    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
    End With

    'Si la feuille est vide on stoppe tout.
    If IsEmpty(ActiveSheet.UsedRange) Then Exit Sub

    'Dossier de destination des fichiers PDF créés
    Répertoire = "D:\"
    'On crée un nouveau document en copiant la feuille active
    ActiveSheet.Copy

    With ActiveSheet
        'On donne au fichier PDF le nom de la feuille active
        Fichier = .Name & ".pdf"
        'On crée le nouveau document au format PDF
        .ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:=Répertoire & Fichier, _
            Quality:=xlQualityMinimum, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=False
    End With

    'On ferme le document que l'on vient de crée
    ActiveWorkbook.Close False
    'On passe à la feuille suivante

    Application.DisplayAlerts = True

End Sub

Re,

Une petite amélioration.

On vérifie que le fichier n'existe pas.

Option Explicit
Private Sub cmdCreerPDF_Click()
Dim Répertoire As String, _
    Fichier As String, _
    feuille As Variant, _
    Nom As Name

    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
    End With

    'Si la feuille est vide on stoppe tout.
    If IsEmpty(ActiveSheet.UsedRange) Then Exit Sub

    'Dossier de destination des fichiers PDF créés
    Répertoire = "D:\"

    With ActiveSheet
        'On donne au fichier PDF le nom de la feuille active
        Fichier = .Name & ".pdf"
        'On vérifie que le fichier n'existe pas.
        If ExistenceFichier(Répertoire & Fichier) Then
            MsgBox " Le fichier existe déjà."
            Exit Sub
        End If
        'On crée un nouveau document en copiant la feuille active
        .Copy
        'On crée le nouveau document au format PDF
        .ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:=Répertoire & Fichier, _
            Quality:=xlQualityMinimum, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=False
    End With

    'On ferme le document que l'on vient de crée
    ActiveWorkbook.Close False
    'On passe à la feuille suivante

    Application.DisplayAlerts = True

End Sub
Option Explicit
Function ExistenceFichier(sFichier As String) As Boolean
    ExistenceFichier = Dir(sFichier) <> ""
End Function

Woooa trop puissant !!!

bonjour,

vous pouvez poster le fichier corrigé, j'ai un probleme quand je fais le copier/coller

merci

Bonjour,

Le fichier est joint dans mon dernier message.

Cdlt.

bonsoir,

Il m'affiche l'erreur 52 : nom ou numéro de fichier incorrect!

Merci par avance

Bonjour,

Vérifie le nom de la feuille de calcul.

Sinon envoie to fichier.

Cdlt.

Bonjour,

j’utilise le dernier fichier posté

Merci beaucoup

Bonsoir Messiers ou Mesdames,

Petite problématique dans mon cas une partie de la macro s'affiche en jaune (J'ai voulu que le PDF créé porte le nom de deux variable du fichier exel)

Auriez-vous une solution? merci d'avance

Private Sub Validation_Click()
Dim Répertoire As String, _
    Fichier As String, _
    feuille As Variant, _
    Nom As Name

    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
    End With

    'Si la feuille est vide on stoppe tout.
   If IsEmpty(ActiveSheet.UsedRange) Then Exit Sub

    'Dossier de destination des fichiers PDF créés
   Répertoire = "C:\Users\Desktop"

    With ActiveSheet
        'On donne au fichier PDF le nom de la feuille active
      Fichier = "Main Courante" & Range("F2").Value.Range("D4").Value & ".pdf"
        'On crée le nouveau document au format PDF
       .ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:=Fichier, _
            Quality:=xlQualityMinimum, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=True
    End With

    'On ferme le document que l'on vient de crée
   ActiveWorkbook.Close False
    'On passe à la feuille suivante

    Application.DisplayAlerts = True

End Sub

Alors Gillow, as tu une solution à ton probleme ? J'essaye de mon coté sans trouver de solution. Mon probleme est presque similaire puisque mon fichier doit s'appeller "PROJET" ainsi que le contenu de la cellule B8 (nom du client). Je trouve pas, donc j'attends une âme charitable

Nom pas encore je replanche dessus demain soir si j'ai une réponse, je la posterai promis.

Bonjour,

Remplace :

Fichier = "Main Courante" & Range("F2").Value.Range("D4").Value & ".pdf"

par :

Fichier = "Main Courante" & Range("F2").Value & Range("D4").Value & ".pdf"

Cdlt.

Merci beaucoup je teste dès que je rentre de congés

Bonsoir enfin rentrée de congés, donc j'ai essayé de remplacer la ligne de code et l'erreur s'est déplacée, je me demande si cela viens bien d'une faute de syntaxe.

Private Sub Validation_Click()
Dim Répertoire As String, _
    Fichier As String, _
    feuille As Variant, _
    Nom As Name

    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
    End With

    'Si la feuille est vide on stoppe tout.
  If IsEmpty(ActiveSheet.UsedRange) Then Exit Sub

    'Dossier de destination des fichiers PDF créés
  Répertoire = "C:\Users\Desktop"

    With ActiveSheet
        'On donne au fichier PDF le nom de la feuille active
Fichier = "Main Courante" & Range("F2").Value & Range("D4").Value & ".pdf"
        'On crée le nouveau document au format PDF
      .ExportAsFixedFormat _
Type:=xlTypePDF, _
            Filename:=Fichier, _
            Quality:=xlQualityMinimum, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=True
    End With

    'On ferme le document que l'on vient de crée
  ActiveWorkbook.Close False
    'On passe à la feuille suivante

    Application.DisplayAlerts = True

End Sub

bonsoir a vous

je ne sais pas si j'ai la réponse mais il y a quelque chose qui me gêne a cette ligne sans l'avoir essayer

Fichier = "Main Courante" & Range("F2").Value & Range("D4").Value & ".pdf"

"main courante" c'est quoi et il manque les . devant les range

137main-courante.xlsm (59.33 Ko)
grisan29 a écrit :

bonsoir a vous

je ne sais pas si j'ai la réponse mais il y a quelque chose qui me gêne a cette ligne sans l'avoir essayer

Fichier = "Main Courante" & Range("F2").Value & Range("D4").Value & ".pdf"

"main courante" c'est quoi et il manque les . devant les range

"main courante" c'est la partie du nom du fichier qui ne change jamais

exemple du nom: Main Courante "variable F2""variable F4".pdf

ensuite dans les messages précédents on m'a fait supprimer les points, je cherche de mon côté si tu peux me filer un coups de main ce serait sympa

Je vous ai mis le fichier pour vous aidez

bonsoir

est ce que tu as trouvé depuis car en bas du post il y a des réponses a des questions du même genre voir ceci par exemple

https://forum.excel-pratique.com/excel/creer-sous-dossier-pour-exportation-pdf-t53944.html

Rechercher des sujets similaires à "creer bouton cliquable exporter pdf"