Excel 2007, macro pour pdf

mamatt62

XLDnaute Junior
Bonjour j'ai une macro qui me converti une feuille excel en pdf. De plus, la feuille convertie est propre a un client, que l'on choist à l'aide d'une liste déroulante.

Est il possible que la macro me génere la fiche de chaque clients dans un dossier donné.

La macro suivante: me permet de générer la fiche mais que j'ai préalablement sélectionnéé.

Voici la macro que j'utilise:

Private Sub CommandButton1_Click()

Chemin = "C:\Documents and Settings\GVF08F3\Bureau\Nouveau dossier"
PDFFile = Sheets("Fiche à transmettre a CE").Select & ".pdf"

Sheets("Fiche à transmettre a CE").ExportAsFixedFormat Type:=x1TypePDF, _
Filename:=[M4].Value, _
Quality:=x1QualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True

End Sub

En résumé mon probleme est de pouvoir générer la fiche de la totalité de mes clients et surtout de pouvoir choisir l'endroit où les sauvegarder.

Je vous remercie pour votre aide.

Cordialement
 

cbea

XLDnaute Impliqué
Re : Excel 2007, macro pour pdf

Bonjour mamatt62 et le forum,

Voici une solution pour récupérer un dossier sélectionné :
Code:
    Dim Repertoire As FileDialog
     
    Set Repertoire = Application.FileDialog(msoFileDialogFolderPicker)
    Repertoire.Show
     
    ' Si aucun répertoire sélectionné
    If Repertoire.SelectedItems().Count = 0 Then Exit Sub
    ' Récupérer le chemin sélectionné
    chemin = Repertoire.SelectedItems(1)
    If Mid(chemin, Len(chemin), 1) <> "\" Then chemin = chemin & "\"
 

mamatt62

XLDnaute Junior
Re : Excel 2007, macro pour pdf

Super CBEA ca marche super c'est ce qu'il me fallait :).

Sinon tu n'aurais pas l'astuce pour sélectionner toutes les données de la liste déroulante, par hasard ? :)

Ou alors ou je pourrais trouver ca, parce que je pense que ca se fait mais je ne trouve rien sur le net.

Encore merci pour ton aide.
 

mamatt62

XLDnaute Junior
Re : Excel 2007, macro pour pdf

Sur le fichier se trouve une liste déroulante au niveau de la ville. Dans ma fiche le choix de la feuille conditionne les informations à l'interieur ( nbres de cdes, prix des cdes etc...)

Ce que je voudrais c'est que la macro me génere le pdf pour chacune des villes ( ou clients c'est pareil). Un pdf par client.

Pour l'instant la macro que j'ai me génere le pdf que je sélectionne et suelement celui la.

Est ce possible de faire cela ?

Voici la macro que j'utilise actuellement:

Private Sub CommandButton1_Click()

Chemin = "C:\Documents and Settings\GVF08F3\Bureau\Nouveau dossier"
PDFFile = Sheets("Fiche à transmettre a CE").Select & ".pdf"

Sheets("Fiche à transmettre a CE").ExportAsFixedFormat Type:=x1TypePDF, _
Filename:=[M4] & [L15] & [L16].Value, _
Quality:=x1QualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Dim Repertoire As FileDialog

Set Repertoire = Application.FileDialog(msoFileDialogFolderPicker)
Repertoire.Show

' Si aucun répertoire sélectionné
If Repertoire.SelectedItems().Count = 0 Then Exit Sub
' Récupérer le chemin sélectionné
Chemin = Repertoire.SelectedItems(1)
If Mid(Chemin, Len(Chemin), 1) <> "\" Then Chemin = Chemin & "\"

End Sub
 

Pièces jointes

  • Classeur3.xlsx
    243.1 KB · Affichages: 221
  • Classeur3.xlsx
    243.1 KB · Affichages: 229
  • Classeur3.xlsx
    243.1 KB · Affichages: 233

cbea

XLDnaute Impliqué
Re : Excel 2007, macro pour pdf

Bonjour,

Si je comprends bien, tu as une liste déroulante dans laquelle tu sélectionnes plusieurs noms et ensuite, tu veux générer un PDF pour chaque nom sélectionné.
Si c'est bien cela, il faut modifier la liste des noms car cela fait référence à une validation de données et un seul choix n'est possible.
Il serait nécessaire de remplacer cela par un objet "Liste déroulante".

Peux-tu confirmer ?
Merci

PS : le fichier que tu as joint possède des liaisons et il manque des données pour bien comprendre.
 

mamatt62

XLDnaute Junior
Re : Excel 2007, macro pour pdf

arf ! oui c'est exactement ca j'ai une liste déroulante (validation de données) avec les noms de mes clients. Une fois un nom sélectionné, les infos se mettent à jour, en fonction du client sélectionné.

Comment remplacé ma liste déroulante et que me conseilles tu ?

De plus, tu as bien compris ce que je veux, c'est édité un fichier pdf par client, et que cela se fasse automatiquement avec la macro.

Merci de ton aide.
 

cbea

XLDnaute Impliqué
Re : Excel 2007, macro pour pdf

Bonsoir,

voici une solution avec une liste déroulante + un bouton de commande pour générer le ou les fichiers PDF.
 

Pièces jointes

  • Classeur3-1.zip
    145.6 KB · Affichages: 132
  • Classeur3-1.zip
    145.6 KB · Affichages: 141
  • Classeur3-1.zip
    145.6 KB · Affichages: 142

mamatt62

XLDnaute Junior
Re : Excel 2007, macro pour pdf

Bonjour,

je viens de voir ton fichier. Deja merci bcp pour ton aide et ton implication. Cependant, je viens de l'essayer et le bouton pdf ne me génere rien il ne se passe rien.

Peux tu me dire, quel type de liste as tu utilisé ? et le code a rentrer pour générer la totalité des pdf.

Merci de ton aide
 

cbea

XLDnaute Impliqué
Re : Excel 2007, macro pour pdf

Bonjour,

j'ai ajouté un contrôle ActiveX de type Zone de liste.
Je n'ai pas mis le code pour générer le PDF car il s'agit d'un bout de code que tu as et chez moi, cela ne fonctionne pas.
Dans le code VBA et sur le clic sur le bouton PDF, j'ai mis un commentaire pour t'indiquer où mettre le code pour générer le PDF.
 

mamatt62

XLDnaute Junior
Re : Excel 2007, macro pour pdf

merci bcp a toi pour ton aide. Je n'arrive pas encore à compiler la formule avec mes éléments mais ca devrait aller je pense qu'il faut je trouve l'astuce pour les lier, et surtout changer les bonne caractéristiques de la macro pour la liste déroulante pour l'adapter à la mienne.

Derniere question suis je obliger de faire une liste comme la tienne ou celle que j'utilise fonctionne ?

Merci encore pour ton aide et ton implication.
 

cbea

XLDnaute Impliqué
Re : Excel 2007, macro pour pdf

il faut que tu utilises un contrôle ActiveX de type Liste de données comme je l'ai mis dans mon fichier puisque la liste que tu utilises correspond à une validation de données et qui ne permet pas la multi-sélection.

Si tu veux, tu peux copier le contrôle de mon fichier pour le coller dans ton fichier.
 

Discussions similaires