IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Créer pdf avec nom défini dans une cellule [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Employé
    Inscrit en
    Octobre 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Employé

    Informations forums :
    Inscription : Octobre 2018
    Messages : 13
    Par défaut Créer pdf avec nom défini dans une cellule
    Bonjour,

    je sais que ma demande n'est pas nouvelle mais j'aimerai vraiment comprendre ce que je loupe dans mon fichier.
    J'ai un document excel dans lequel j'ai ajouté trois boutons avec des fonctions différentes(Création pdf; Création pdf et envoi mail; envoi mail) et le tout rattaché à du code vba. J'ai pour cela ajouter trois modules. Formules données par un certain Ron sur Internet.
    Le tout fonctionne bien mais j'aimerai qu'à la création du pdf ce dernier renseigne automatiquement un nom d'après les champs d'une cellule.
    Pour l'instant je sèche, j'ai beau modifié le code dans le module CreatePDF je n'y arrive pas

    voilà le code

    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
     
    Sub RDB_Worksheet_Or_Worksheets_To_PDF()
        Dim FileName As String
     
        If ActiveWindow.SelectedSheets.Count > 1 Then
            MsgBox "There is more then one sheet selected," & vbNewLine & _
                   "be aware that every selected sheet will be published"
        End If
     
        'Call the function with the correct arguments
        'Tip: You can also use Sheets("YourSheetName") instead of ActiveSheet in the code(sheet not have to be active then)
        FileName = RDB_Create_PDF(Source:=ActiveSheet, _
                                  FixedFilePathName:="", _
                                  OverwriteIfFileExist:=True, _
                                  OpenPDFAfterPublish:=True)
     
        'For a fixed file name use this in the FixedFilePathName argument
        'FixedFilePathName:="C:\Users\Ron\Test\YourPdfFile.pdf"
     
        If FileName <> "" Then
            'Ok, you find the PDF where you saved it
            'You can call the mail macro here if you want
        Else
            MsgBox "Not possible to create the PDF, possible reasons:" & vbNewLine & _
                   "Microsoft Add-in is not installed" & vbNewLine & _
                   "You Canceled the GetSaveAsFilename dialog" & vbNewLine & _
                   "The path to Save the file in arg 2 is not correct" & vbNewLine & _
                   "You didn't want to overwrite the existing PDF if it exist"
        End If
    End Sub
    si quelqu'un pouvait m'aider, merci
    Je mets le fichier en pièce jointe
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par hijackfr Voir le message
    Pour l'instant je sèche, j'ai beau modifié le code dans le module CreatePDF je n'y arrive pas
    Pour pouvoir t'aider, il faudrait au moins pouvoir consulter le code de cette fonction.

  3. #3
    Membre habitué
    Homme Profil pro
    Employé
    Inscrit en
    Octobre 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Employé

    Informations forums :
    Inscription : Octobre 2018
    Messages : 13
    Par défaut
    Bonjour,

    oui j'avais oublié le fichier, je l'ai ajouté dans le post initial.
    Merci de m'aider menhir.

    Je pense que c'est dans le code que j'ai copié dans le 1er post au niveau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FileName = RDB_Create_PDF(Source:=ActiveSheet, _
                                  FixedFilePathName:="", _
    Mais étant débutant je sèche sur ce que je loupe

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par hijackfr Voir le message
    oui j'avais oublié le fichier, je l'ai ajouté dans le post initial.
    Pour ton info, beaucoup de participants à ce forum (y compris moi) n'ouvrent pas les fichiers joints.
    A lire : https://www.developpez.net/forums/d8...s-discussions/

    Je pense que c'est dans le code que j'ai copié dans le 1er post au niveau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FileName = RDB_Create_PDF(Source:=ActiveSheet, _
                                  FixedFilePathName:="", _
    La seule chose que montre ce code, c'est que le nom de fichier n'est pas prévu comme paramètres de la fonction RDB_Create_PDF.
    Pour savoir comment le rajouter, il faut donc voir le code de cette fonction.

  5. #5
    Membre habitué
    Homme Profil pro
    Employé
    Inscrit en
    Octobre 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Employé

    Informations forums :
    Inscription : Octobre 2018
    Messages : 13
    Par défaut
    Voilà les lignes demandées

    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
    Function RDB_Create_PDF(Source As Object, FixedFilePathName As String, _
                            OverwriteIfFileExist As Boolean, OpenPDFAfterPublish As Boolean) As String
        Dim FileFormatstr As String
        Dim Fname As Variant
     
            If FixedFilePathName = "" Then
                'Open the GetSaveAsFilename dialog to enter a file name for the pdf
                FileFormatstr = "PDF Files (*.pdf), *.pdf"
                Fname = Application.GetSaveAsFilename("", filefilter:=FileFormatstr, _
                                                      Title:="Create PDF")
     
                'If you cancel this dialog Exit the function
                If Fname = False Then Exit Function
            Else
                Fname = FixedFilePathName
            End If
     
            'If OverwriteIfFileExist = False we test if the PDF
            'already exist in the folder and Exit the function if that is True
            If OverwriteIfFileExist = False Then
                If Dir(Fname) <> "" Then Exit Function
            End If
     
            'Now the file name is correct we Publish to PDF
            On Error Resume Next
            Source.ExportAsFixedFormat _
                    Type:=xlTypePDF, _
                    FileName:=Fname, _
                    Quality:=xlQualityStandard, _
                    IncludeDocProperties:=True, _
                    IgnorePrintAreas:=False, _
                    OpenAfterPublish:=OpenPDFAfterPublish
            On Error GoTo 0
     
            'If Publish is Ok the function will return the file name
            If Dir(Fname) <> "" Then RDB_Create_PDF = Fname
    End Function

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    D'après ce que je vois, le paramètre FixedFilePathName ne définit pas seulement le chemin mais aussi le nom de fichier destination.
    Il suffit donc dans la macro qui appelle de renseigner ce paramètre en changeant le "" par la référence à la cellule où se trouve le nom souhaité.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        FileName = RDB_Create_PDF(Source:=ActiveSheet, _
                                  FixedFilePathName:=Range"A1".Value, _
                                  OverwriteIfFileExist:=True, _
                                  OpenPDFAfterPublish:=True)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Changer titre d'un userform dont le nom est dans une cellule
    Par Heruvor dans le forum Excel
    Réponses: 2
    Dernier message: 10/09/2014, 11h45
  2. [XL-2010] Nom de la variable défini dans une cellule
    Par Slash86 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/04/2014, 16h04
  3. Réponses: 8
    Dernier message: 13/02/2014, 18h51
  4. [XL-2007] Nom fichier dans une cellule
    Par Pierre67 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 07/09/2013, 10h52
  5. Créer un moteur de recherche dans une cellule d'un classuer excel
    Par ludovicparis dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/03/2007, 15h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo