Enregistrer en PDF depuis liste déroulante+chemin

Bonjour ;

J’ai un fichier Excel avec une liste déroulante en C7 et le nom de dossier en C9 et le nom du fichier en C8.

J’ai une macro qui m’enregistre en PDF page par page avec le nom de fichier sur le bon nom de dossier.

Je veux une macro qui défile la liste déroulante et enregistre en PDF chaque état sur son dossier avec leurs noms.

Nom de dossier : C9

Nom de fichier : C8

Le fichier en attaché

Et la macros.

D’avance merci.

la macro

Sub PDF_Print()

'Déclaration des variables

Dim NomDossier As String

Dim CheminDossier As String

On Error GoTo 1

'Nom de dossier

NomDossier = Range("C9")

CheminDossier = "P:\COM-RET\COM-RET-PIL\Busines Review\PDF Buisnes Review\" & NomDossier & "\"

If NomDossier = "" Then Exit Sub

'Enregistrement au format PDF

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _

CheminDossier & "Business Review " & Range("C8").Value & ".pdf", quality:= _

xlQualityStandard, includedocproperties:=True, ignoreprintareas:=False, _

from:=1, to:=1, openafterpublish:=False

1

End Sub

Donc le chemin de ton fichier imprimé est celui-ci si j'applique ton code :

P:\COM-RET\COM-RET-PIL\Busines Review\PDF Buisnes Review\North\Business Review\Commercial B.pdf

Code à ajouter dans feuille correspondant dans le ProjectVba

'Changement de données dans cellule C7 c'est-à-dire le choix dans la liste déroulante
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("C7")) Is Nothing Then
Call PDF_Print 'Appelle la macro PDF_Print
End If
End Sub

Sub PDF_Print()
Dim NomDossier As String
Dim CheminDossier As String
NomDossier = Range("C9")
CheminDossier = "P:\COM-RET\COM-RET-PIL\Busines Review\PDF Buisnes Review\" & NomDossier & "\"
'Enregistrement au format PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=CheminDossier & "Business Review\" & Range("C8").Value & ".pdf", quality:= _
xlQualityStandard, includedocproperties:=True, ignoreprintareas:=False, _
from:=1, to:=1, openafterpublish:=False
End Sub

Adjoutes ce code dans ta feuille

Bonjour à tous,

cela fonctionnera uniquement si les répertoires existent déjà.

Sub PDF_Print()
'Déclaration des variables
Dim NomDossier As String
Dim CheminDossier As String
On Error GoTo 1
CheminDossier = "P:\COM-RET\COM-RET-PIL\Busines Review\PDF Buisnes Review\"

For i = 2 To Sheets("PARAMETRE").Cells(Rows.Count, 1).End(xlUp).Row
    'Nom de dossier
    NomDossier = CheminDossier & Sheets("PARAMETRE").Cells(i, 3)  & "\"
    'Nom de fichier
    fichier = "Business Review " & Sheets("PARAMETRE").Cells(i, 2) & ".pdf"

    If NomDossier = "" Then Exit Sub

    'Enregistrement au format PDF
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=CheminDossier & fichier, quality:=xlQualityStandard, _
    includedocproperties:=True, ignoreprintareas:=False, from:=1, to:=1, openafterpublish:=False
Next
1:
End Sub

merci

mais ca marche pas.

Cdt.

140commercial-f.pdf (47.84 Ko)

Surprenant et comme le dit SabV il faut que le chemin existe

Pour ma part l'enregistrement de la feuille se fait parfaitement sur mon bureau avec évidemment le chemin correct pour ma part C:\Users\RIOU emile\Desktop\ sur la base de mon code...

bonjour

ca marche toujours manuellement.

serait-il possible de l'automatiser c'est à dire qu'elle défile toute seule la liste déroulante .

merci BCP.

Bonjour

Le principe d'un liste déroulante est de collecter des informations dans le fichier ou sur la base d'une programmation et de les lister dans cette même liste déroulante.

Le choix dans la liste ne peut se faire que manuellement soit sélectionnant une ligne de la liste, soit en cliquant soit en double-cliquant.

Pour ma part je ne connais pas d'autre principe.

Bonne journée

bonjour

j'ai trouvé la bonne Macro et je la partage avec vous.

Sub Impression()

Dim Liste As String, C As Range

With Sheets("Buisness Support")

Dim NomDossier As String

Dim CheminDossier As String

Liste = .Range("C7").Validation.Formula1

Liste = Right(Liste, Len(Liste) - 1)

For Each C In Range(Liste)

.[C7] = C.Value

On Error GoTo 1

'Nom de dossier

NomDossier = Range("B28")

CheminDossier = "P:\COM-RET\COM-RET-EXP\Support Review Retail\PDF Buisness Suport Retail\" & NomDossier & "\"

If NomDossier = "" Then Exit Sub

'Enregistrement au format PDF

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _

CheminDossier & "Business Support " & Range("C8").Value & ".pdf", quality:= _

xlQualityStandard, includedocproperties:=True, ignoreprintareas:=False, _

from:=1, to:=1, openafterpublish:=False

1

Next C

End With

End Sub

Bonjour Mareno,

je cherche une solution comme la tienne, peux-tu m'expliquer pourquoi

NomDossier = Range("B28") alors une liste déroulante en C7 et le nom de dossier en C9 et le nom du fichier en C8.

merciiii

Rechercher des sujets similaires à "enregistrer pdf liste deroulante chemin"