Impression PDF multiples depuis onglets Excel [Résolu/Fermé]

Signaler
Messages postés
6
Date d'inscription
vendredi 4 mars 2016
Statut
Membre
Dernière intervention
12 mars 2016
-
 Adrien -
Bonjour,

Je souhaiterais une macro me permettant d'imprimer tous les onglets d'un fichier Excel en fichier PDF nommé suivant le nom de l'onglet.

Merci d'avance
Khrys
A voir également:

1 réponse

Messages postés
15804
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
9 juin 2021
1 500
Bonjour,

si excel2007 et plus, adaptez le chemin
Sub Macro2()
    For x = 1 To Worksheets.Count
        NO = Worksheets(x).Name
        Worksheets(NO).ExportAsFixedFormat Type:=xlTypePDF, Filename:="D:\_Docs_Prog_Excel\Impression\" & NO & ".pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
        Next x
End Sub
Messages postés
6
Date d'inscription
vendredi 4 mars 2016
Statut
Membre
Dernière intervention
12 mars 2016

Bonjour,

Super merci, mais serait-il possible d'intégrer une boite de dialogue pour définir l'emplacement?
Messages postés
15804
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
9 juin 2021
1 500 >
Messages postés
6
Date d'inscription
vendredi 4 mars 2016
Statut
Membre
Dernière intervention
12 mars 2016

Re,
Sub Macro2()
    'Chemin contiendra le chemin de la sélection et
    'choix prendra la valeur 0 pour rechercher uniquement les dossiers et
    'n'importe quel autre valeur (de 1 à 255) pour rechercher un dossier ou un fichier.
    'choix repertoire
    Dim choix As Byte
    choix = 0
    Chemin = ChoixDossierFichier(choix)
    If Chemin <> "" Then
        For X = 1 To Worksheets.Count
            NO = Worksheets(X).Name
            Worksheets(NO).ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin & "\" & NO & ".pdf", _
            Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
        Next X
    End If
End Sub

'code trouve sur internet pour selection repertoire ou/et fichier
Function ChoixDossierFichier(SelType As Byte) As String
     Dim objShell As Object, objFolder As Object
     Dim Chemin As String, Msg As String
     Dim FlagChoix As Long, NbPoint As Integer

     If SelType = 0 Then
          FlagChoix = &H1
          Msg = "Selectionner un dossier :"
     Else
          FlagChoix = &H4000
          Msg = "Selectionner un fichier :"
     End If

     Set objShell = CreateObject("Shell.Application")
     ' &h1
    ' 1er paramètre toujours 0 (zéro). Il représente le handle de la fenêtre parent
    ' 2ème paramètre Titre de la boite, en dessous de la barre de titre
    ' 3ème paramètre options de BrowseForFolder
    ' 4ème paramètre Facultatif. Répertoire de début d'exploration
    On Error Resume Next
     Set objFolder = objShell.BrowseForFolder(&H0&, Msg, FlagChoix)
    'Si l 'objet retourné est valide, on teste son contenu (item.title)
     'Si on a sélectionné la racine d'une partition, il se compose du nom de la partition,
     ' suivi de sa lettre et ":" entre parenthèses     NbPoint = InStr(objFolder.Title, ":")
    If NbPoint = 0 Then
        'Sinon, il se compose du nom du dossier uniquement, sans le chemin précédent
        'On récupère ce chemin à l'aide des propriété et méthode ParentFolder.ParseName
        Chemin = objFolder.ParentFolder.ParseName(objFolder.Title).Path & ""
     Else
        'si racine on récupère la lettre du lecteur et les 2 points
        Chemin = Mid(objFolder.Title, NbPoint - 1, 2)
     End If
     ChoixDossierFichier = Chemin
End Function
Messages postés
6
Date d'inscription
vendredi 4 mars 2016
Statut
Membre
Dernière intervention
12 mars 2016

Excellent c'est parfait grand merci et bonne soirée.
Merci pour le code !!!

Je l'ai utilisé sur un fichier à plusieurs onglets, par contre il ne tourne que pour les 6 premiers onglets et après il me marque Erreur '5' : Argument ou appel de procédure incorrect.

Avez vous une idée du problème ?

Merci d'avance
Si ça peut aider quelqu'un j'ai résolu mon problème qui venait du fait que j'avais des onglets cachés qui stoppaient le fonctionnement de la macro.