Export en pdf vers un chemin donné par l'utilisateur

Carnage029

XLDnaute Occasionnel
Bonjour à tous,

Encore une fois je viens ici exposer mes petits problèmes en VBA, en effet j'ai rouvé sur internet plusieurs code que j'ai réussi à adapter, mais je ne trouve pas comment le faire répondre pleinement à mes besoins :D

Code:
Sub Enreg_Pdf()

Dim theDate As String, sigleC As String, typeM As String
theDate = Format(Date, "ddmmyyyy")
sigleC = Range("A2").Value
typeM = Range("A5").Value
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sigleC & "_" & theDate & "_" & typeM & ".pdf", Quality:= _
    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    From:=1, To:=1, OpenAfterPublish:=True
        
End Sub

Le code suivant me permet d'exporter la feuille active en tant que pdf avec le nom qui va bien, cependant je souhaiterai faire ouvrir une box à l'éxecution de la macro (par un bouton) demandant le chemin de sauvegarde (une dialogs box mais pour sauvegarder en fait)


Je vous remercie beaucoup de votre aide,

Je ne pense pas qu'il faille un fichier excel pour comprendre mais si vous en souhaitez réellement un faites moi signe :)
 

Hulk

XLDnaute Barbatruc
Re : Export en pdf vers un chemin donné par l'utilisateur

Hello Carnage, Forum,

Essaie comme ceci...
Code:
Sub Enreg_Pdf()

    Dim theDate As String, sigleC As String, typeM As String
    
    On Error Resume Next
    
    'Attention de bien mettre le dernier backslash "\" à la fin du chemin !
    'Ou le mettre entre le chemin et la date comme l'exemple plus bas
    
    chemin = InputBox("Entrez le chemin" _
        & Chr(13) & Chr(13) & "Exemple : C:\Users\PDF\", "Chemin de sauvegarde")
    
    If chemin = "" Then Exit Sub
    
    theDate = Format(Date, "ddmmyyyy")
    sigleC = Range("A2").Value
    typeM = Range("A5").Value
    
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=chemin & theDate & "_" & typeM & ".pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        From:=1, To:=1, OpenAfterPublish:=True
        
    'ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=chemin & "/" & theDate & "_" & typeM & ".pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        From:=1, To:=1, OpenAfterPublish:=True
               
End Sub
 

Carnage029

XLDnaute Occasionnel
Re : Export en pdf vers un chemin donné par l'utilisateur

Merci Hulk de passer sur mon post, la solution que tu me propose ne convient malheureusement pas,

je souhaiterai exporter vers un chemin ou l'on peut naviguer comme une sauvegarde classique, comme un xldialogsaveas, mais lorsque j'essaye de me servir de ça, je n'arrive pas à mettre un nom de fichier par défaut ainsi que l'extension pdf... et ne sauvegarder que la page active et non pas tout le classeur...

Comprends tu ou je ne suis pas assez clair (je sais que ça peut sembler compliquer à comprendre ou que je ne m'exprime pas clairement, :s)

Encore merci :D
 

Hulk

XLDnaute Barbatruc
Re : Export en pdf vers un chemin donné par l'utilisateur

Re,

Ou comme ça...
Code:
Sub Enreg_Pdf()

    Dim theDate As String, sigleC As String, typeM As String
    Dim chemin As String
    
    On Error Resume Next
    
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Show
        If .SelectedItems.Count > 0 Then
            chemin = .SelectedItems(1)
        Else
            Exit Sub
        End If
    End With
    
    theDate = Format(Date, "ddmmyyyy")
    typeM = Range("A5").Value
    
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=chemin & "\" & theDate & "_" & typeM & ".pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        From:=1, To:=1, OpenAfterPublish:=True
        
End Sub
Plus besoin de sigleC dans les deux cas.
 

Carnage029

XLDnaute Occasionnel
Re : Export en pdf vers un chemin donné par l'utilisateur

Merci beaucoup c'est exactement ça, en revanche je ne comprend pas pourquoi tu me dis que sigleC ne sert plus ? je souhaite avoir ça dans le nom de mon fichier pdf...

merci encore :) réponse rapide que j'aime ce forum :D
 

Carnage029

XLDnaute Occasionnel
Re : Export en pdf vers un chemin donné par l'utilisateur

voilà je met le code pour ceux qui seraient intéressés, le nom final du document est sigleC_theDate_theDateb_typeM.pdf

Code:
Sub TESTAAA()

Sheets(Array("Impression - Remboursement")).Select
    Dim theDate As String, sigleC As String, typeM As String
    Dim chemin As String
    
    On Error Resume Next
    
    With Application.FileDialog(msoFileDialogFolderPicker)
    .Show
        If .SelectedItems.Count > 0 Then
            chemin = .SelectedItems(1)
        Else
            Exit Sub
        End If
    End With
    
    theDateb = Range("D5").Value
    theDateb = Format(theDateb, "ddmmyyyy")
    
    theDate = Range("F5").Value
    theDate = Format(theDate, "ddmmyyyy")
    
    sigleC = Range("A2").Value
    
    typeM = Range("A5").Value
    
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=chemin & "\" & sigleC & "_" & theDate & "_" & theDateb & typeM & ".pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        From:=1, To:=ExecuteExcel4Macro("GET.DOCUMENT(50)"), OpenAfterPublish:=True
        
End Sub


Merci Hulk, j'ai juste changé le To: 1 avec ExecuteExcel4Macro("GET.DOCUMENT(50)") pour bien sauvegarder toute la feuille et non pas juste la première page :)

merci encore
 

Hulk

XLDnaute Barbatruc
Re : Export en pdf vers un chemin donné par l'utilisateur

Re,

Ben sigleC (cellule A2) c'est la cellule où il y a le chemin non.. ? Et tu souhaites le chemin dans le nom de ton fichier PDF ?

Là en tous cas, ils ne servent à rien ! Et au départ avec ta macro, sauf erreur, non plus ça ne te mettait pas le chemin dans le nom du PDF, enfin je crois (sans classeur joint difficile de répondre précisément).

Tiens un petit lien si tu veux approfondir un peu...
 

Discussions similaires

Statistiques des forums

Discussions
312 938
Messages
2 093 784
Membres
105 830
dernier inscrit
sylvain.marteel1-partner@