Enregistrement automatique avant fermeture sans message d'alerte

Bonjour,

J'aimerai modifier mon code VBA qui enregistre une copie du fichier dans un dossier spécifique avant la fermeture du fichier.

Seulement plusieurs problème subsistes.

si le fichier à déjà été enregistré, un message d'alerte apparait pour demander de remplacer le fichier avec les boutons "oui" ou "non" ou "annulé".

- J'aimerai que le code écrase et remplace automatiquement cette copie.

Merci d'avance pour votre aide.

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)

    Application.AlertBeforeOverwriting = True
    ActiveWorkbook.Save

'Macro pour enregistrer une copie
Dim nomfichier
Dim chemin As String
chemin = "D:\Excel chantier en cours\tableau de suivi\test sauvegarde auto\"
nomfichier = ActiveWorkbook.Name & ".xlsm"
'MsgBox "Votre sauvegarde porte la référence : " & nomfichier
With ActiveWorkbook
.SaveAs Filename:=chemin & nomfichier
Application.DisplayAlerts = False
'.Close
End With
End Sub

Bonjour,

Ton truc est pas clair :

Il y a 3 manières (de base) d'enregistrer

- Save (On sauvegarde le classeur avec ses modifications)

- SaveAs (On enregistre le classeur mais sous un autre nom : l'ancien n'est alors plus actif et plus à jour) la finalité n'est pas de faire une sauvegarde mais bien de travailler à l'avenir sur une autre version...

- SaveCopyAs (Comme son nom l'indique on crée une copy -en général de sauvegarde- de préférence sur un autre support pas dans le dossier en cours ! Mais le classeur source est toujours le classeur actif. Comme tu as déjà enregistré ton classeur sous son nom habituel, il n'y a aucune conséquence. Ta copie de sécurité est son répertoire de Copies de sécurités et ton classeur bien à sa place.

Si tu ne veux aucun message d'allerte :

Application.DisplayAlerts = False 'et True aussitot après

Private Sub Workbook_BeforeClose(Cancel As Boolean)
   Application.DisplayAlerts = False
   ActiveWorkbook.Save
  Application.DisplayAlerts =  true

et surtout pas de

Application.AlertBeforeOverwriting = True
parce que là ça devient contradictoire !

A+

Rechercher des sujets similaires à "enregistrement automatique fermeture message alerte"