XL 2019 bouton supplémentaire

velpa

XLDnaute Nouveau
Bonjour a toutes et tous,
j'ai actuellement un programme avec macro qui me permet de creer plusieurs documents sur les feuille 1, feuille 2...etc.
Je souhaite intégrer un bouton "enregistrer sous pdf" et après avoir parcouru le forum, je dois dire que je nage un peu...
Il y a déjà un bouton qui me permet d'imprimer la feuille 1 par exemple et je me disais que je pouvais partir de la, mais ce fut un échec.
Alors je me tourne vers vous pour m'aider.

Au cas ou voici le code pour imprimer :
Private Sub CommandButton5_Click()
Dim j As Integer
For j = 0 To listclient.ListCount - 1
If listclient.Selected(j) = True Then
fact = Val((listclient.List(j, 1))): factt = j + 1: nfac = fact - 1
imprim
Feuil4.PrintOut From:=1, To:=retour
End If
Next
End Sub

Merci a vous.
 

patricktoulon

XLDnaute Barbatruc
bonjour
pour le classeur entier c'est ActiveWorkbook.ExportAsFixedFormat
pour le sheets actif ou une sélection de sheets c'est ActiveSheet.ExportAsFixedFormat
pour la sélection il te faut les sélectionner avant bien entendu Sheets(Array("feuil1", "feuil3")).Select

donc pour sauvegarder en pdf certaines feuilles
exemple
VB:
Sub test()
   'enregistre toutes les pages de la feuille 1 et 3
    Sheets(Array("feuil1", "feuil3")).Select
    chemin = "C:\Users\polux\Documents\Classeuraaaaaa1.pdf"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin, Quality:=xlQualityStandard, _
                                    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End Sub

pour imprimer
Sheets(Array("feuil1", "feuil3")).print (out/preview)


 

velpa

XLDnaute Nouveau
bonjour
pour le classeur entier c'est ActiveWorkbook.ExportAsFixedFormat
pour le sheets actif ou une sélection de sheets c'est ActiveSheet.ExportAsFixedFormat
pour la sélection il te faut les sélectionner avant bien entendu Sheets(Array("feuil1", "feuil3")).Select

donc pour sauvegarder en pdf certaines feuilles
exemple
VB:
Sub test()
   'enregistre toutes les pages de la feuille 1 et 3
    Sheets(Array("feuil1", "feuil3")).Select
    chemin = "C:\Users\polux\Documents\Classeuraaaaaa1.pdf"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin, Quality:=xlQualityStandard, _
                                    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End Sub

pour imprimer
Sheets(Array("feuil1", "feuil3")).print (out/preview)
Bonjour,
merci pour votre réponse, après avoir écumé le forum et le net j'étais parti la-dessus :
Private Sub CommandButton41_Click()

Dim fichier As String
Dim Chemin As String

With Worksheets("Devis1")
fichier = "\" & .Range("E4") & .Range("F11") & ".pdf"

Chemin = " C:\Users\Admin\Documents\Sauvegarde\" & fichier
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
End With
End Sub

Mais évidement ça marche pas :-(
erreur.jpg

Et je vais être casse pied mais est-il possible de créer un sous dossier si non existant, avec la ref d'une cellule "nom client", lors de l'enregistrement ?

Merci d'avance
 

patricktoulon

XLDnaute Barbatruc
re
bonjour
regarde l'espace devant le "C:"
Chemin = " C:\Users\Admin\Documents\Sauvegarde\" & fichier


est-il possible de créer un sous dossier si non existant,
oui c'est possible
VB:
chemin = " C:\Users\Admin\Documents\Sauvegarde\"

sousdossier = "mon nouveau dossier"

If Dir(chemin, vbDirectory) <> "" Then

    MkDir chemin & sousdossier

Else

    MsgBox "la racine" & vbCrLf & chemin & vbCrLf & "n'existe pas"

End If
ton dossier c'est
 

velpa

XLDnaute Nouveau
Je rame...
Apparemment j'ai plusieurs erreurs dans le code.
Il faut un Dim pour le sous dossier ?
Et la feuille 4 en question s'appelle Devis1, je dois mettre feuil4 ou Devis1 ?
Voila ou j'en suis :
Private Sub CommandButton41_Click()

Dim fichier As String
Dim Chemin As String

With Worksheets("Feuil4")
fichier = "\" & Feuil4.Range("E4") & Feuil4.Range("F11") & ".pdf"

Chemin = " C:\Users\Admin\Documents\Sauvegarde\"

sousdossier = Feuil4.Range("E4")

If Dir(Chemin, vbDirectory) <> "" Then

MkDir Chemin & sousdossier

Else

MsgBox "la racine" & vbCrLf & Chemin & vbCrLf & "n'existe pas"

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

End With
End Sub

Merci
 

patricktoulon

XLDnaute Barbatruc
re

c'est soit
with feuil4
...
ou
with sheets("lenomquetuluiadonné")

mais on a un soucis ici

fichier = Feuil4.Range("E4") & Feuil4.Range("F11") & ".pdf"

sousdossier = Feuil4.Range("E4")

faut savoir c'est quoi le nom du sousdossier
c'est quoi le nom du fichier E4 ou F11 ou les deux
faut te décider ;)
 

patricktoulon

XLDnaute Barbatruc
re
bon je decide !
VB:
Private Sub CommandButton41_Click()

Dim fichier$, Chemin$, sousdossier$, chemin_complet
With Worksheets("Feuil4")
fichier = Feuil4.Range("F11") & ".pdf"
Chemin = " C:\Users\Admin\Documents\Sauvegarde\"
sousdossier = Feuil4.Range("E4")
If Dir(Chemin, vbDirectory) <> "" Then
MkDir Chemin & sousdossier
Else
MsgBox "la racine" & vbCrLf & Chemin & vbCrLf & "n'existe pas": Exit Sub
End If

chemin_complet = Chemin & sousdossier & "\" & fichier
'**************************************
'si tu veux plusieurs feuilles dans ton pdf
'sheets(array("toto","riri","loulou").select' ce sont leurs  noms et pas leurs codename
'****************************************
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin_complet, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False

End With
End Sub
 

velpa

XLDnaute Nouveau
En fait j'aimerais que le fichier PDF soit sauvegardé dans un sous dossier nommé avec le contenu de la cellule E4 (qui fait elle même référence a une autre) et que le fichier est le nom E4 + le contenu de la cellule F11 (qui est la date du devis).
 

patricktoulon

XLDnaute Barbatruc
re
VB:
Private Sub CommandButton41_Click()

Dim fichier$, Chemin$, sousdossier$, chemin_complet
With Worksheets("Feuil4")
fichier = Feuil4.Range("E4") & "_"& Feuil4.Range("F11") & ".pdf"
Chemin = " C:\Users\Admin\Documents\Sauvegarde\"
sousdossier = Feuil4.Range("E4")
If Dir(Chemin, vbDirectory) <> "" Then
MkDir Chemin & sousdossier
Else
MsgBox "la racine" & vbCrLf & Chemin & vbCrLf & "n'existe pas": Exit Sub
End If

chemin_complet = Chemin & sousdossier & "\" & fichier
'**************************************
'si tu veux plusieurs feuilles dans ton pdf
'sheets(array("toto","riri","loulou").select' ce sont leurs  noms et pas leurs codename
'****************************************
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin_complet, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False

End With
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
314 627
Messages
2 111 309
Membres
111 096
dernier inscrit
BERGER JEREMY