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 :

Enregistrement excel en PDF par macro [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Avril 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Rédacteur technique

    Informations forums :
    Inscription : Avril 2017
    Messages : 57
    Points : 31
    Points
    31
    Par défaut Enregistrement excel en PDF par macro
    Bonjour a tous novice en macro

    *1 Voila je voudrais avoir une macro pour enregistre mon fichier Excel en PDF avec le même nom puis au même endroit que la source du fichier , sans changer son nom bien sur,
    *2 Puis d'enregistré automatiquement en même tant en Excel (.xls)
    *3 Puis d'ouvrir le PDF pour vérifier ma mise en page.
    *4 Puis de fermée l'ensemble.

    pour évité de sélectionné les actions que Excel nous propose du fait de choisir enregistre sous puis de choisir le format PDF puis la destination de l'enregistrement.

    Voila si possible en une action donc la macro enfin j'espère

    Merci d'avance pour tous

    Cdt

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, voir Excel et l'enregistreur de macro
    En bas de ce post 1 la dernière partie intitulée : Impression de certaines Feuilles d'un classeur via un tableau dans un seul Pdf résultant

    P.-S. : Ce n'est pas le bon forum. D'urgence Antidote

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Avril 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Rédacteur technique

    Informations forums :
    Inscription : Avril 2017
    Messages : 57
    Points : 31
    Points
    31
    Par défaut
    Merci pour ta réponse rapide mais rien ne fonctionne
    sachant que je suis novice dans ce domaine.

    puis si je me trompe pas je ne vois pas pour qu'il enregistre avec le même nom que l'original.

    Merci

  4. #4
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Re, l'enregistreur de macros te fournira un embryon de code qu'il te faudra optimiser à la main.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Avril 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Rédacteur technique

    Informations forums :
    Inscription : Avril 2017
    Messages : 57
    Points : 31
    Points
    31
    Par défaut
    Re voici ca avance
    Jai trouver ceci;
    Mais je ne trouve pas comment enregistrée dans le même dossier ou se trouve la source.

    De l'aide merci....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Enregistrer_pdf_original()
     
    Rep = MsgBox("Voulez-vous sauvegarder en pdf ?", vbYesNo)
         If Rep = vbYes Then
     
     
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Fichier, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=True
     
         End If
     
    End Sub

  6. #6
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, qqch dans le genre ci-dessous

    de la lecture :

    P.-S. : Pour baliser ton 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
    Option Explicit
     
    Sub Enregistrer_pdf_original()
    Dim Rep As Long, sFichier As String
    Dim FSO As Object
     
        Rep = MsgBox("Voulez-vous sauvegarder en pdf ?", vbYesNo)
        If Rep = vbYes Then
            Set FSO = CreateObject("Scripting.FileSystemObject")
            sFichier = ThisWorkbook.Path & "\" & FSO.GetBaseName(ThisWorkbook.Name)
            Set FSO = Nothing
     
            ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFichier, _
                                            Quality:=xlQualityStandard, IncludeDocProperties:=True, _
                                            IgnorePrintAreas:=False, OpenAfterPublish:=True
        End If
    End Sub

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Avril 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Rédacteur technique

    Informations forums :
    Inscription : Avril 2017
    Messages : 57
    Points : 31
    Points
    31
    Par défaut
    Merci kiki29 fonctionne Nikel
    ou la vache ta réponse a 4 heures du mat ca déchire

    y a-t-il la possibilité d'avoir un message si le fichier PDF existe déjà avant de l'écraser en message de type box par oui ou non

    puis aussi qu'il effectue une sauvegarde du fichier Excel aussi en même tant.

    merci d'avance

  8. #8
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, pour la sauvegarde au format Excel, je te laisse le soin de poursuivre. Se méfier de ce genre de messages en cascade du style "voulez-vous écraser ce fichier", "êtes vous sur de l'écraser", "bon on va l'écraser" qui lassent très vite l'utilisateur et ne le responsabilise pas.

    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
    Option Explicit
     
    Sub Enregistrer_pdf_original()
    Dim Rep As Long, Rep2 As Long, sFichier As String
    Dim FSO As Object
     
        Rep = MsgBox("Voulez-vous sauvegarder en pdf ?", vbYesNo)
        If Rep = vbYes Then
            Set FSO = CreateObject("Scripting.FileSystemObject")
            sFichier = ThisWorkbook.Path & "\" & FSO.GetBaseName(ThisWorkbook.Name) & ".pdf"
     
            If FSO.FileExists(sFichier) Then
                Rep2 = MsgBox("Le fichier pdf existe déjà, confirmer son écrasement ?", vbYesNo)
                If Rep2 = vbYes Then
                    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFichier, _
                                                    Quality:=xlQualityStandard, IncludeDocProperties:=True, _
                                                    IgnorePrintAreas:=False, OpenAfterPublish:=True
                End If
            Else
                ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFichier, _
                                                Quality:=xlQualityStandard, IncludeDocProperties:=True, _
                                                IgnorePrintAreas:=False, OpenAfterPublish:=True
     
            End If
            Set FSO = Nothing
        End If
    End Sub

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Avril 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Rédacteur technique

    Informations forums :
    Inscription : Avril 2017
    Messages : 57
    Points : 31
    Points
    31
    Par défaut
    Encore merci pour ta rapidité tes un chef........

    Pour ne pas abuser est-il possible d'enregistrée en PDF un ensemble d'onglet donc pas la totalité en même temps

    par exemple onglet AVIS 1 ; AVIS 2 AVIS 3 ; AVIS 4

    Merci encore

    Cdt

  10. #10
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Re, à adapter pour les noms et nombre de feuilles
    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
    38
    39
     
    Sub Enregistrer_pdf_original()
    Dim Rep As Long, sFichier As String
    Dim FSO As Object
     
        Rep = MsgBox("Voulez-vous sauvegarder en pdf ?", vbYesNo)
        If Rep = vbYes Then
            Set FSO = CreateObject("Scripting.FileSystemObject")
            sFichier = ThisWorkbook.Path & "\" & FSO.GetBaseName(ThisWorkbook.Name) & ".pdf"
     
            If FSO.FileExists(sFichier) Then
                Rep = MsgBox("Le fichier pdf existe déjà, confirmer son écrasement ?", vbYesNo)
                If Rep = vbYes Then SavePDF sFichier
            Else
                SavePDF sFichier
            End If
            Set FSO = Nothing
        End If
    End Sub
     
    Private Sub SavePDF(sNomFichier As String)
    Dim Ar(1) As String
     
        Ar(0) = "Feuil1"
        Ar(1) = "Feuil3"
     
        Application.ScreenUpdating = False
        Sheets(Ar).Select
     
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
                                        Filename:=sNomFichier, _
                                        Quality:=xlQualityStandard, _
                                        IncludeDocProperties:=True, _
                                        IgnorePrintAreas:=False, _
                                        OpenAfterPublish:=False
     
        Sheets("Feuil1").Select
        Application.ScreenUpdating = True
    End Sub

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Avril 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Rédacteur technique

    Informations forums :
    Inscription : Avril 2017
    Messages : 57
    Points : 31
    Points
    31
    Par défaut
    Merci beaucoup je test puis je vous tient au jus
    T un chef

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Avril 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Rédacteur technique

    Informations forums :
    Inscription : Avril 2017
    Messages : 57
    Points : 31
    Points
    31
    Par défaut
    Encore Merci Fonctionne Nikel

    Longue vie au FOFO

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Macro PDF
    BOnjour,

    Merci pour cette macro.
    Est-il possible d'ajouter dans la macro la possibilité de nommer le fichier enregistrer ainsi que le chemin ?

    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
    Option Explicit
     
    Sub Enregistrer_pdf_original()
    Dim Rep As Long, Rep2 As Long, sFichier As String
    Dim FSO As Object
     
        Rep = MsgBox("Voulez-vous sauvegarder en pdf ?", vbYesNo)
        If Rep = vbYes Then
            Set FSO = CreateObject("Scripting.FileSystemObject")
            sFichier = ThisWorkbook.Path & "\" & FSO.GetBaseName(ThisWorkbook.Name) & ".pdf"
     
            If FSO.FileExists(sFichier) Then
                Rep2 = MsgBox("Le fichier pdf existe déjà, confirmer son écrasement ?", vbYesNo)
                If Rep2 = vbYes Then
                    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFichier, _
                                                    Quality:=xlQualityStandard, IncludeDocProperties:=True, _
                                                    IgnorePrintAreas:=False, OpenAfterPublish:=True
                End If
            Else
                ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFichier, _
                                                Quality:=xlQualityStandard, IncludeDocProperties:=True, _
                                                IgnorePrintAreas:=False, OpenAfterPublish:=True
     
            End If
            Set FSO = Nothing
        End If
    End Sub
    Merci.
    Cordialement,

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

Discussions similaires

  1. [XL-2003] Envoyer un fichier Excel en Pdf par mail
    Par FCL31 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 25/03/2010, 16h29
  2. [XL-2000] Ouvrir et imprimer un pdf par macro
    Par lagondenoumea dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/12/2009, 05h57
  3. [Excel]Ouvrir feuille par macro.
    Par JML62400 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/02/2009, 18h11
  4. Réponses: 2
    Dernier message: 12/12/2006, 00h22
  5. Imprimer des selections excel en pdf par VBA
    Par ouellet5 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/12/2005, 17h29

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