XL 2019 Macro impression de liste PDF

Smookie

XLDnaute Nouveau
Bonsoir,

J'ai créé un fichier Excel pour faciliter l'impression de fichier PDF.
Il fonctionne de la façon suivante :
- On sélectionne dans le tableau à l'aide de la liste déroulante une marque puis la liste à coté fait apparaitre les modèles de produit au sein de la marque en question qui correspondent au nom du fichier PDF classé par dossier : Chauffage, Plomberie, VMC.
- Puis une fois notre tableau rempli, il suffit de cliquer sur le bouton imprimer et la macro va imprimer tous les fichiers PDF sélectionné qu'elle recherche dans les dossiers.

Mon problème : lorsque j'imprime en PDF et non sur l'imprimante papier il me demande pour chaque fichier de choisir un emplacement donc ma question : est- il possible d'avoir à choisir une seule fois l'emplacement pour l'ensemble des fichiers PDF ?
DOSSIERS.PNG
MARQUES.PNG
DESIGNATION PRODUITS.PNG

PS : je suis novice en VBA, j'ai réussi à créer se fichier grâce à Internet, si quelqu'un à des suggestions pour faciliter ma macro je suis preneuse !!

Merci beaucoup pour le temps accordé
 

Pièces jointes

  • BOOK.xlsm
    276.7 KB · Affichages: 11

kiki29

XLDnaute Barbatruc
Salut, si curieuse, une autre approche ici.

Avec la possibilité de fusion en 1 seul pdf de l'ensemble des feuilles, ou de génération des feuilles sélectionnées de façon séparée, de gestion des doublons via un indice, le tout dans un dossier créé automatiquement et nommé par défaut Dossier PDFs à la racine de l'application. L'ensemble des feuilles ( visibles ou pas ) est listé via le bouton Récap.
 

Smookie

XLDnaute Nouveau
Sa marche super bien mais je me suis sûrement mal exprimé.
Lorsque je fais ma liste MARQUE et DESIGNATION en cliquant sur le bouton imprimé je souhaite que le fichier PDF existant ranger dans le dossier de la MARQUE soit récupéré et copier dans un nouveau dossier avec tous les fichiers PDF sélectionné dans la tableau.
 

Pièces jointes

  • TABLEAU DE SELECTIONS MARQUE ET DESIGNATION.PNG
    TABLEAU DE SELECTIONS MARQUE ET DESIGNATION.PNG
    13.8 KB · Affichages: 40

kiki29

XLDnaute Barbatruc
Re, à toi de poursuivre/adapter à ton contexte
ici shChauffage est le CodeName de l'onglet CHAUFFAGE

VB:
Sub CopiePDF_Repertoire()
Dim i As Long, iNb As Long
Dim FSO As Object
Dim sFichier As String, sDossierDep As String, sDossierArr As String

    Set FSO = CreateObject("Scripting.FileSystemObject")
    For i = 11 To 24
        sDossierDep = shChauffage.Cells(i, 2)
        sDossierArr = sDossierPDFs
        sFichier = shChauffage.Cells(i, 2) & ".pdf"
        If FSO.FolderExists(ThisWorkbook.Path & "\" & sDossierDep) Then
            If FSO.FileExists(ThisWorkbook.Path & "\" & sDossierDep & "\" & sFichier) Then
                FileCopy ThisWorkbook.Path & "\" & sDossierDep & "\" & sFichier, ThisWorkbook.Path & "\" & sDossierArr & "\" & sFichier
            End If
        End If
    Next i
    Set FSO = Nothing
End Sub
 
Dernière édition:

Smookie

XLDnaute Nouveau
Re, à toi de poursuivre/adapter à ton contexte
ici shChauffage est le CodeName de l'onglet CHAUFFAGE

VB:
Sub CopiePDF_Repertoire()
Dim i As Long, iNb As Long
Dim FSO As Object
Dim sFichier As String, sDossierDep As String, sDossierArr As String

    Set FSO = CreateObject("Scripting.FileSystemObject")
    For i = 11 To 24
        sDossierDep = shChauffage.Cells(i, 2)
        sDossierArr = sDossierPDFs
        sFichier = shChauffage.Cells(i, 2) & ".pdf"
        If FSO.FolderExists(ThisWorkbook.Path & "\" & sDossierDep) Then
            If FSO.FileExists(ThisWorkbook.Path & "\" & sDossierDep & "\" & sFichier) Then
                FileCopy ThisWorkbook.Path & "\" & sDossierDep & "\" & sFichier, ThisWorkbook.Path & "\" & sDossierArr & "\" & sFichier
            End If
        End If
    Next i
    Set FSO = Nothing
End Sub
Bonjour,
Je n'arrive pas à comprendre ce code...
Comment savoir ou copie t-il le fichier PDF et où va-t-il le récupère ?

Merci,
 

Discussions similaires

Statistiques des forums

Discussions
315 096
Messages
2 116 173
Membres
112 677
dernier inscrit
Justine11