Ligne VBA pour enregistrer en PDf ( proposer le dossier et nom du fichier)

cedric cadre

XLDnaute Nouveau
Bonjour,

Voila , j'ai une macro qui donne ça pour enregistrer en PDF certaines feuilles de mon classeur:

Sub ImpressionGlobale()


If Sheets("Impression").Range("B3").Value <> "" Then Sheets("Calcul Global").Select Replace:=False
...........................
If Sheets("Impression").Range("B15").Value <> "" Then Sheets("Page1").Select Replace:=False
If Sheets("Impression").Range("B16").Value <> "" Then Sheets("PageN").Select Replace:=False

Sheets("Page1").Activate
ChDir "C:\Users\pose soleil\Desktop\Offre Particuliers ASE"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\pose soleil\Desktop\Offre Particuliers ASE\pdf.pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True

End Sub

ça marche nikel, mais je souhaiterai que quand on l’exécute, la fenêtre s'ouvre pour me demander ou je veux l'enregistrer et à quel nom.

je sais que c'est après "filename= " qu'il faut mettre autre chose, mais koi?

merci
 

Poto

XLDnaute Occasionnel
Re : Ligne VBA pour enregistrer en PDf ( proposer le dossier et nom du fichier)

Salut,

voici le code vba que j'utilise pour generer un fichier pdf a partir d'une selection et pour pouvoir choisir l'endroit et l'extension pour la sauvegarde

FileSaveName = Application.GetSaveAsFilename(InitialFileName:="Export du " & Format(Date, "dd mmmm yyyy") & ".pdf", filefilter:="Fichier PDF(*.pdf), *.pdf")

If FileSaveName <> False Then

Selection.ExportAsFixedFormat Type:=xlTypePDF, FileName:= FileSaveName
, Quality:=xlQualityMinimum, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False

end if


j'espere que ca t'aidera

a+
 

Poto

XLDnaute Occasionnel
Re : Ligne VBA pour enregistrer en PDf ( proposer le dossier et nom du fichier)

aie aie aie, autre chose :

la ligne ChDir "C:\Users\pose soleil\Desktop\Offre Particuliers ASE"

me gène, je voudrai que la macro s'execute où que soit le fichier...


utilise :

thisworkbook.path ....

ca permet de donner une indication de chemin relative à l'emplacement du fichier excel appelant la macro
 

Poto

XLDnaute Occasionnel
Re : Ligne VBA pour enregistrer en PDf ( proposer le dossier et nom du fichier)

Merci Poto t'est un vrai poto :)


no problema ;)


attention à ActiveWorkbook... car si t'es en train de dev dans l editeur vba et que tu jongle avec plusieurs classeur excel, ca peut foutre la mer*e ;)
perso, j'essaie toujours d'etre le plus precis possible dans mon code, une bonne habitude à prendre

@+
 

cedric cadre

XLDnaute Nouveau
Re : Ligne VBA pour enregistrer en PDf ( proposer le dossier et nom du fichier)

ah d'accord, thiswork veut dire celui que j'utilise et pas un autre. je vais mettre ça alors.

sinon une idée pour que mon fichier aie dans son nom d'enregistrement la valeur de la case "nom client" dans ma feuille "ALEO" case "b5"?

J'ai ça pour l'instant :
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"Offre " & Format(Date, "dd mmmm yyyy") & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True

je pourrai peut-être rajouter un "="feuilleALEO"B5" après le mot offre

ce serai drôlement utile. :)
 

Poto

XLDnaute Occasionnel
Re : Ligne VBA pour enregistrer en PDf ( proposer le dossier et nom du fichier)

ou tu simplement :

dim NomClient as string
NomClient = thisworkbook.sheets("FeuilleALEO").range("B5").value

' et ensuite

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"Offre de " & NomClient & " du " & Format(Date, "dd mmmm yyyy") & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True

ca c'est si t'as pas nommer la plage B5

si tu as donner un nom à la plage, appelle directement le nom par

dim NomClient as string
NomClient = thisworkbook.names("Le_nom_que_t_as_donner_a_la_plage").referstorange


' et ensuite

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"Offre de " & NomClient & " du " & Format(Date, "dd mmmm yyyy") & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True


et voilà ;)
 

Discussions similaires

Statistiques des forums

Discussions
311 735
Messages
2 082 024
Membres
101 873
dernier inscrit
excellllll