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
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 !


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:

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 105
dernier inscrit
Joffrette