Choix de la destination (Enregistrement format PDF)

Bonjour à tous !

J'utilise la macro suivante pour exporter un document au format PDF

Sub Bouton5_Cliquer()
Feuil2.ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:="C:\Users\bapti\Desktop\HVE\Audit" & Feuil1.Range("D1").Text & ".pdf", _
    OpenAfterPublish:=True
End Sub

C'est une macro que j'ai pu trouver un fouinant sur le net, cependant elle ne répond pas tout à fait à mes attentes :

L'application que j'essaie de développer sera utilisée sur plusieurs appareils, et le chemin d'accès C:\Users\bapti\Desktop\HVE\Audit sera donc différents selon les utilisateurs de l'application.

Existe-t-il une façon de rendre cette application "universelle" ? J'ai essayé de modifier pour que le PDF s'enregistre sur le Bureau, mais je n'ai pas réussi, sans doute à cause de mes maigres compétences !

Je vous remercie par avance,

Gambastique

Bonjour Gambastique, bonjour le forum,

Peut-être comme ça :

Sub Bouton5_Cliquer()
Dim FD As FileDialog
Dim CH As String

Set FD = Application.FileDialog(msoFileDialogFolderPicker)
FD.Show
On Error GoTo fin
CH = FD.SelectedItems(1) & "\"
Feuil2.ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=CH & Feuil1.Range("D1").Text & ".pdf", _
    OpenAfterPublish:=True
fin:
End Sub

Re-bonjour,

C'est super, exactement ce que je recherchais !

Je me permet d'abuser de tes compétences (ou de celles des autres) encore un peu, mais peut-être devrais-je refaire un topic ?

En effet, je me suis rendu compte d'un petit problème :

Pour faire simple, le document exporté en PDF est un tableau, pouvant avoir de 1 à 2048 lignes, selon les cas. Or, lorsque j'exporte un document comportant 50 lignes, le document PDF garde les 1998 lignes vides. Je pense qu'il faudrait raisonner de la façon suivante "Arrêter la sélection à la première ligne vide" mais mon manque de connaissance en syntaxe VBA me limite beaucoup... De plus, certaines colonnes du tableau ne sont pas "vides" mais comportent des formules. (Exemple : Les doses sont renseignées dans la colonne B, les surfaces dans la colonne C, et la colonne D est une formule permettant de calculer le produit des 2 colonnes à savoir =B1*C1) Pour des raisons "visuelles" la formule est en fait =SI(B1*C1=0;"";B1*C1)

Pour donner une piste, sachez que pour chaque ligne non vide, une information est présente dans la colonne A (c'est une date). Peut-être pourrait-on procéder en faisant arrêter la sélection à la première ligne pour laquelle A est vide ?

Je vous remercie encore

Gambastique

Re,

On onbtient la dernière ligne éditée (DL) d'une colonne (A) d'un onglet (Feuil1) avec :

Dim DL As Integer
DL = Worksheets("Feuil1").Cells(Application.Rows.Count, "A").End(xlUp).Row

Re,

Merci pour ta réponse rapide, comment puis-je intégrer cela à la précédente macro ?

Re

Non testé et dernière colonne à adapter (pour l'exemple j'ai mis G):

Sub Bouton5_Cliquer()
Dim DL As Integer
Dim FD As FileDialog
Dim CH As String

DL = Worksheets("Feuil2").Cells(Application.Rows.Count, "A").End(xlUp).Row
Set FD = Application.FileDialog(msoFileDialogFolderPicker)
FD.Show
On Error GoTo fin
CH = FD.SelectedItems(1) & "\"
Worksheets("Feuil2").Range("A1:G" & DL).ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=CH & Feuil1.Range("D1").Text & ".pdf", _
    OpenAfterPublish:=True
fin:
End Sub

Sinon, il te faudra d'abord copier coller les données utiles sur un autre onglet puis imprimer cet autre onglet...

C'est parfait, merci encore !

Rechercher des sujets similaires à "choix destination enregistrement format pdf"