Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Choisir une feuille onglet et pouvoir la sauvegarder en choisissant son chemin d'enregistrement

lebontuyau

XLDnaute Nouveau
Bonjour à tous !

Une éternité que je ne m'étais plus connecté à ce forum d'expert
Mais aujourd'hui j'ai vraiment besoin de vous

voilà, on me demande la chose suivante :
-> pouvoir sauvegarder une feuille Excel (et non tout le classeur) mais en faisant apparaître la fenêtre "enregistrer sous".
ainsi l'utilisateur pourra choisir de lui-même son chemin de sauvegarde

Attention, il devra y avoir le nom "Commandes" qui s'affiche d'emblée dans le champ "Enregistrer sous" et aussi que ce soit sauvegardé en format PDF

Please, help

Merci à vous !
 

lebontuyau

XLDnaute Nouveau


J'ai oublié de vous dire

Il me faudrait le code VBA
 

Phil69970

XLDnaute Barbatruc
Bonjour lebontuyau, le forum

Je te propose ceci :
VB:
Option Explicit

Sub EnregistrementPDF()
Dim NFichier As String, EnregPdf As String
Sheets(Array(1, 2)).Select

EnregPdf = Application.GetSaveAsFilename("Commandes", FileFilter:=" PDF Files (*.pdf), *.pdf")
NFichier = Mid(EnregPdf, InStrRev(EnregPdf, "\") + 1)
If Dir(EnregPdf) = "" Then
    'Création du fichier PDF
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NFichier, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True
Else
    If MsgBox("Le fichier existe déjà, voulez-vous le remplacer ?", vbYesNo + vbExclamation, "Confirmation") = vbYes Then
        'Création du fichier PDF
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NFichier, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True
    Else
        Exit Sub
    End If
End If
End Sub

*Remarque :
Si l'utilisateur peut choisir le dossier d'enregistrement il pourra tout autant modifier le nom du fichier "Commandes.pdf" en "Je_veux_mettre_ce_que_je_veux.pdf" par exemple.

*Autrement regarde cet exemple ici :

ou bien
Solution 2 :
VB:
Option Explicit

Sub EnregistrementPDF()

Dim Chemin As String
Dim NFichier As String

Chemin = ActiveWorkbook.Path & "\"
NFichier = "Commandes" & ".pdf"

If NFichier = "" Then Exit Sub
If Dir(Chemin & NFichier) <> "" Then
    'le fichier existe déjà et suivant réponse de l'utilisateur
    If MsgBox("Le fichier existe déjà, voulez-vous le remplacer ?", vbYesNo + vbExclamation, "Confirmation") = vbYes Then
        'Création du fichier PDF
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        Chemin & NFichier, Quality:=xlQualityStandard, IncludeDocProperties:=True
 
        MsgBox "Le fichier a été enregitré." & vbCrLf & vbCrLf & "Ici ==> " & Chemin & vbCrLf & vbCrLf & _
        "Sous le nom : " & NFichier, 48, "Enregistrement fichier en PDF ..."
    Else
        MsgBox "Le PDF n'a pas été crée", vbCritical, "Le fichier existe déjà"
        Exit Sub
    End If
 
Else
    'créer le pdf
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        Chemin & NFichier, Quality:=xlQualityStandard, IncludeDocProperties:=True
 
    MsgBox "Le fichier a été enregitré." & vbCrLf & vbCrLf & "Ici ==> " & Chemin & vbCrLf & vbCrLf & _
        "Sous le nom : " & NFichier, 48, "Enregistrement fichier en PDF ..."
End If
End Sub

@Phil69970
 
Dernière édition:
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…