Désactiver la macro dans la sauvegarde

Bonjour,

J'ai utilisé ce code pour enregistrer une copie de sauvegarde;

Sub CS()
 Dim DN As String
    Application.DisplayAlerts = False

        With ThisWorkbook
            On Error Resume Next
                DN = ThisWorkbook.Path & "\sauvegarde\"
                MkDir DN
            On Error GoTo 0
            .SaveCopyAs Filename:=DN & .Name
        End With
    Application.DisplayAlerts = True

    Application.OnTime Now + TimeValue("00:00:15"), "CS"
End Sub

Dans le fichier d'origine, seule le userform apparaît sans le classeur;
SVP, Je veux quand j’ouvre la sauvegarde, la macro est désactivée et le classeur apparaît sans le userform.

Merci

11aa.xlsm (21.05 Ko)

Bonjour,

La copie à pour but de ne plus utiliser de macro ?

Si oui dans ce cas enregistrez votre copie au format "xlsx" ( format qui ne conserve pas les macros )

Bonjour,

Merci pour votre attention Xmenpl,

Le but de la sauvegarde est d'examiner les bases de données , Aussi, si vous voulez modifier les données de la manière normale...

J'ai déjà essayé le format "xlsx", Mais ce message m’apparaît.

Merci

sans titre

Si vous avez utilisée la même ligne de Code ( SaveCopy as ) évidemment il y aura une erreur !

Une copy par définition doit avoir la même extension.

Pour enregistrer en xlsx la ligne doit ressembler à ceci :

ActiveWorkbook.SaveAs Filename:= _
DN & .Name & ".xlsx", FileFormat:=xlOpenXMLWorkbook _
, CreateBackup:=False

Bonsoir Xmenpl,

Il n'y a aucun problème avec cela,
Mais s'il vous plaît, je veux créer un seul fichier pour enregistrer la copie de sauvegarde et aussi ne pas ouvrir cette copie à chaque fois;
Est-il possible de remplacer ActiveWorkbook par ThisWorkbook ?

désolée pour le dérangement

merci.

Bonsoir Xmenpl,

Il n'y a aucun problème avec cela,
Mais s'il vous plaît, je veux créer un seul fichier pour enregistrer la copie de sauvegarde et aussi ne pas ouvrir cette copie à chaque fois;
Est-il possible de remplacer ActiveWorkbook par ThisWorkbook ?

désolée pour le dérangement

merci.

Re bonjour, Je ne vois pas la différence. Ce qu'il faut savoir c'est que lorsque l'on fait un : "Enregistrer sous" à la fin de l'enregistrement on se trouve

sur le nouveau fichier créé et plus sur l'original.

Bonjour,

Oui, c'est ça le problème;

Si le nouveau fichier est ouvert, un nouveau dossier de sauvegarde sera créé;

sans titre1

L'extension est également ajoutée au nom du fichier.

Merci

Dans ce cas, sur la base de votre première idée. ( save copie as )

Considérant qu'une macro s'ouvre à l'ouverture du fichier avec un code dans le Workbook open()

Vous pourriez utilisez une ligne pour vérifier si vous êtes sur l'original ou la copie ?

Dans le Workbook open du style : ( chemin à personnaliser avec vos infos)

IF ThisWorkbook.Path ="C:\users\mesdocuments\sauvegarde\" Then
Exit sub
End if

Ceci va vérifier à l'ouverture du fichier si le fichier ce trouve dans sauvegarde et si oui il quittera la macro.

Idem pour les évenements sur les feuilles (change ) lignes à ajouter en début de l'évenement pour que la macro soit annulée.

Merci beaucoup Xmenpl,

J'ai réussi à trouver une solution...

Merci pour vos efforts

Rechercher des sujets similaires à "desactiver macro sauvegarde"