Ameliorer le code de la macro sauve pdf

Résolu/Fermé
DAN41HOM Messages postés 23 Date d'inscription mardi 4 décembre 2018 Statut Membre Dernière intervention 14 décembre 2018 - 9 déc. 2018 à 21:50
DAN41HOM Messages postés 23 Date d'inscription mardi 4 décembre 2018 Statut Membre Dernière intervention 14 décembre 2018 - 10 déc. 2018 à 17:35
Bonjour,

J'ai une macro de sauvegarde en PDF pour un classeur excel 2016.

Je cherche à l'améliorer afin qu'elle puisse me laisser la possibilité de sélectionner (ou programmer) un dossier( ce qu'elle fait déjà) mais surtout que je puisse donner éventuellement changer le nom du fichier sans que celui-ci s'ouvre dans reader.
Ils 'agit d'une macro qui reprend le nom du Mois sur la feuille.

Je suis obligé d'avoir la feuille du Mois ouverte alors que j'aimerais que le bouton Macro soit sur une autre (ex: Tableau de bord) et que je puisse lui désigner l'onglet du Mois à sauver.

Merci de votre aide.



    Dim dossier As String


'emplacement a derterminée
If MsgBox(" Générer PDF Mois ?", vbYesNo, _
"Demande de confirmation") <> vbYes Then Exit Sub



dossier = ChoixDossier
If dossier = "" Then Exit Sub
nom = dossier & "\" & Range("B2")


ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nom _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True

End Sub

Function ChoixDossier()
If Val(Application.Version) >= 10 Then
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = ActiveWorkbook.Path & "\"
.Show
If .SelectedItems.Count > 0 Then
ChoixDossier = .SelectedItems(1)
Else
ChoixDossier = ""
End If
End With
Else
ChoixDossier = InputBox("Choix du Répertoire ?")
End If
End Function
End sub
A voir également:

4 réponses

titeufdu89 Messages postés 375 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 1 avril 2023 38
9 déc. 2018 à 22:31
Bonsoir,

Voici une solution dans laquelle tu saisies dans des inputbox :
- le nom de la feuille à sauvegarder en pdf
- le nom du fichier pour la sauvegarde

Sub sauv_pdf()

Dim dossier As String
Dim ws As Object
Dim nom, feuille As String

'emplacement a derterminée
If MsgBox(" Générer PDF Mois ?", vbYesNo, _
"Demande de confirmation") <> vbYes Then Exit Sub

Set ws = Sheets(InputBox("Quelle feuille souhaitez-vous sauvegarder?"))

dossier = ChoixDossier
If dossier = "" Then Exit Sub
nom = dossier & "\" & InputBox("Nom du fichier :")

ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nom _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
End Sub


Bonne soirée

Jc
0
DAN41HOM Messages postés 23 Date d'inscription mardi 4 décembre 2018 Statut Membre Dernière intervention 14 décembre 2018 4
10 déc. 2018 à 03:59
Bonjour titeufdu89,

Merci pour le code, je vais le mettre en pratique.

Bonne journée
0
DAN41HOM Messages postés 23 Date d'inscription mardi 4 décembre 2018 Statut Membre Dernière intervention 14 décembre 2018 4
10 déc. 2018 à 16:22
Bonjour de nouveau,

En reprenant de nouveau le code fourni par titeufdu89et qui marche à merveille, encore merci à lui, , j'aimerais avoir une mgbox nous permettant d'avoir le choix entre l'ouverture où pas dans Reader.

Nous sommes aperçu que pour des contrôles de temps en temps on avait besoin de cette possibilité.

Désolé, j'aurais le prévoir.

Merci à Vous.
DanVoit.
0
titeufdu89 Messages postés 375 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 1 avril 2023 38
10 déc. 2018 à 17:14
Bonjour DanVoit

Tu peux essayer ce code :
Sub sauv_pdf()

Dim dossier As String
Dim ws As Object
Dim nom, feuille As String

'emplacement a derterminée
If MsgBox(" Générer PDF Mois ?", vbYesNo, _
"Demande de confirmation") <> vbYes Then Exit Sub

Set ws = Sheets(InputBox("Quelle feuille souhaitez-vous sauvegarder?"))

dossier = ChoixDossier
If dossier = "" Then Exit Sub
nom = dossier & "\" & InputBox("Nom du fichier :")

If MsgBox("Souhaitez-vous ouvrir le fichier dans Reader?", vbYesNo) = vbNo Then
ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nom _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
Else
ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nom _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
End If

End Sub


Bonne fin de journée

Jc
0
DAN41HOM Messages postés 23 Date d'inscription mardi 4 décembre 2018 Statut Membre Dernière intervention 14 décembre 2018 4
10 déc. 2018 à 17:35
Bonsoir titeufdu89,

Parfait de parfait.

Comme quoi, j'aurais dû consulter l'équipe avant de demander la première fois.
J'ai fais du Macron, faut croire...

Merci encore pour ce coup de main . Il va nous aider réellement.

Bonne soirée.
DanVoit.
0