Problème macro fermeture classeur

Bonjour,

J'ai créé une macro pour "enregistrer sous" en pdf et fermer le fichier excel sans le sauvegarder (ci-joint),

La macro liée au bouton "valider",

A l’exécution elle répond aux attentes sauf qu"elle m'ouvre un classeur vierge,

Je n'arrive pas à comprendre pourquoi cela se produit,

Merci d'avance de votre aide,

Alt+F11 pour faire apparaître le code,

Cordialement,

Le problème généré par cette macro semble être plus grand que je ne le pensais : je vois que le processus excel reste ouvert dans le gestionnaire des tâches ....

le code :

Public Sub valider()

Dim ChDir As String

Dim NomFichier As String

Dim NomCompletFichier As String

Dim Site As String

Dim NomPersonne As String

Dim Matricule As String

ChDir = Application.ActiveWorkbook.Path

Site = "Dosimétrie"

NomPersonne = "Patient"

Matricule = ""

NomFichier = Site & "_" & NomPersonne & "_" & Matricule

Dim stHeureExport As String

stHeureExport = "_" & _

Format(Hour(Time), "00") & "" & Format(Minute(Time), "00") & "" & _

Format(Second(Time), "00")

NomCompletFichier = ChDir & "\" & NomFichier & stHeureExport

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _

NomCompletFichier & ".pdf", Quality:= _

xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

Application.DisplayAlerts = False

ActiveWorkbook.Close

Application.DisplayAlerts = True

Application.Quit

End Sub

Sub Auto_Close()

If ThisWorkbook.Saved = False Then

ThisWorkbook.Save

End If

End Sub

A vouloir copier des bouts de codes pour améliorer mon fichier je dois créer des incohérences ...

Encore une fois merci à ceux qui prendront le temps de regarder,

Cordialement,

Bonsoir,

A l’exécution elle répond aux attentes sauf qu"elle m'ouvre un classeur vierge,

Un classeur vierge n'est pas ouvert, c'est l'application Excel qui reste active après fermeture du classeur.

Par ailleurs comment voulez-vous que les instructions suivant la fermeture du classeur les contenant soient exécutées ? Une fois le classeur fermé, le code n'est plus disponible.

La solution, c'est de d'abord quitter l'application Excel auquel cas la fermeture du classeur sera automatique.

Donc remplacer :

    Application.DisplayAlerts = False
    ActiveWorkbook.Close
    Application.DisplayAlerts = True
    Application.Quit

par

    Application.Quit

Bonjour,

Effectivement l'application reste active et c'est là que réside mon problème,

Mais en appliquant la correction proposée le fichier est sauvegardé, ce que je ne veux pas,

Je souhaite l'enregistrer sous pdf et fermer le fichier excel sans le sauvegarder,

Merci d'avoir pris le temps de regarder,

Bonjour,

Donc remplacer :

    Application.DisplayAlerts = False
    ActiveWorkbook.Close
    Application.DisplayAlerts = True
    Application.Quit

par

    Application.DisplayAlerts = False
    Application.Quit

et ajouter

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
        ThisWorkbook.Saved = False
End Sub

Re,

Merci de votre réponse,

J'ai testé la correction proposée, et,

J'ai la boite de dialogue excel qui me demande si je veux enregistrer ou pas mon fichier qui réapparaît maintenant,

J'avais ce code pour l'éviter :

Sub Auto_Close()

If ThisWorkbook.Saved = False Then

ThisWorkbook.Save

End If

End Sub

Comment pourrai je l'intégrer svp ?

Merci,

Rechercher des sujets similaires à "probleme macro fermeture classeur"