Bonjour Isabelle,
Je viens de tester :
ActiveWorkbook fonctionne bien pour PrintPreview mais pas pour l'enregistrement au format Excel ni au format PDF
Par contre pour le PrintPreview il me met quand même à l'aperçu la Feuille 1 (sur laquelle est déclenché la macro) même si la condition n'est pas respectée. Je pense qu'il la voit comme feuille active aussi, je ne sais pas.
Comment faire pour l'enregistrement en PDF et Excel pour qu'il ne sélectionne uniquement les feuilles souhaitées ?
Sub Enregistrer_PDF()
Dim Chemin As String, Nom_Fichier As String, Mois As String, Année As String
Chemin = ThisWorkbook.Path & "\"
Nom_Fichier = Sheets(1).Range("H2")
Mois = Sheets(2).Range("E2")
Année = Sheets(2).Range("D2")
If MsgBox("Voulez-vous enregister le fichier au format PDF ?" & Chr(10) & _
Nom_Fichier & " - " & Mois & " " & Année & Chr(10) & Chr(10) & _
"Attention si le fichier existe déjà, il sera écrasé !", vbYesNo + vbExclamation, "Demande de confirmation") = vbYes Then
Call Selectionner_Feuilles
'Enregistre en PDF
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Chemin & Nom_Fichier & " - " & Mois & " " & Année, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
Call Dissocier_Feuilles
End If
End Sub
Sub Enregistrer_XLS()
Dim Chemin As String, Nom_Fichier As String, Mois As String, Année As String
Chemin = ThisWorkbook.Path & "\"
Nom_Fichier = Sheets(1).Range("H2")
Mois = Sheets(2).Range("E2")
Année = Sheets(2).Range("D2")
Call Selectionner_Feuilles
If MsgBox("Voulez-vous enregister le fichier au format Excel ?" & Chr(10) & _
Nom_Fichier & " - " & Mois & " " & Année & Chr(10) & Chr(10) & _
"Attention si le fichier existe déjà, il sera écrasé !", vbYesNo + vbExclamation, "Demande de confirmation") = vbYes Then
'Enregistre le fichier Excel et conserve le modèle
Application.DisplayAlerts = False
ActiveWorkbook.SaveCopyAs Filename:=Chemin & Nom_Fichier & " - " & Mois & " " & Année & ".xlsm"
Application.DisplayAlerts = True
Call Dissocier_Feuilles
End If
End Sub
Merci d'avance pour ton retour.
Geof