Enregistrer sous demandé à l'ouverture d'un fichier Excel

Bonjour,

Pour info, suis très débutante en VBA.

J'ai un fichier Excel avec macros qui servira de base pour établir des offres et sera utilisé par mes collègues. J'aimerais que dès l'ouverture de ce fichier, il soit impératif de l'"enregistrer sous" un dossier précis (G:\Catering) et en .xlsm...

J'ai pensé à le transformer en modèle, mais vu que c'est un fichier qui a des liaisons avec un Word cela fausse mes liaisons. Si vous avez une macro à me proposer j'en serai ravie.

Merci d'avance de vos réponses...

Bonjour,

Le problème de ta demandes c'est que l'enregistrement sous : G:\ ……

va écraser à chaque fois le fichier précédemment enregistré non ?

Y a -t -il une variable d'enregistrement à inclure à chaque fois ?

exemple enregistrer sous nom du doc + date + xlsm ?

Bonjour,

Le problème de ta demandes c'est que l'enregistrement sous : G:\ ……

va écraser à chaque fois le fichier précédemment enregistré non ?

Y a -t -il une variable d'enregistrement à inclure à chaque fois ?

exemple enregistrer sous nom du doc + date + xlsm ?

Bonjour,

Merci pour votre réponse...

Mon fichier de base s'appelle "Offre_base", et j'aimerais que lorsque mes collègues l'ouvrent il leur soit demandé de l'enregistrer dans un autre dossier (dossier de chaque client) qui se trouve dans le lecteur G:\ Dossier "Catering", les dossiers clients y sont listés par leur nom (Mme Untel, M. Unautre, etc). Ceci afin d'éviter qu'ils bousillent mes formules et mes calculs dans mon fichier de base. J'ai pensé aussi à le mettre en lecture seule, mais comme ça je n'arrive pas à leur indiquer dans quel dossier il faudra enregistrer et sous quel format enregistrer (xlsm). Le fichier devrait s'appeler Offre_Mme Untel, etc selon le nom du client. Ce fichier qu'ils auront enregistré, il se peut qu'ils doivent le modifier selon les demandes du client. A ce moment-là ils doivent l'enregistrer sous "Offre_2_Mme Untel". En fait le fichier à aucun moment (sauf si j'y apporte des modifications essentielles) ne doit être écrasé, toujours enregistrer une version différente pour garder une trace des modifications apportées.

Bonjour,

À priori comme ça, je ne vois pas de problème à ce que le fichier soit en xltm, même avec des liaisons ?

Le Danger avec une commande à l'ouverture :

c'est que si vous enregistrez une copie dès l'ouverture au format xlsm alors la commande à l'ouverture sera elle aussi

reproduite sur la copie.

Dans un premier temps dans le propriété de votre "Workbook" :

Private Sub Workbook_Open()
Dim Chemin As String, Fichier As String

    Chemin = "G:\Gatering\"
    ChDrive "G:"
    ChDir Chemin

 MsgBox "Vous devez enregistrer une Copie au nom du client" 'Avertissement enregistrement obligatoire

 Fichier = Application.GetSaveAsFilename(Fichier, "Fichiers Excel (*.xlsm), *.xlsm")
    ActiveWorkbook.SaveAs Fichier ' Ouverture boite d'enregistrement sous

End Sub

Ceci devrait lancer un message puis ouvrir la fenêtre d'enregistrement vers le répertoire G:\Gatering\

Cependant il faudrait une commande après sauvegarde pour supprimer le contenu de workbook open qui n'est plus nécessaire

sur la copie.

Private Sub Workbook_AfterSave(ByVal Success As Boolean)
Dim Debut As Integer, Lignes As Integer

With ThisWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
Debut = .ProcStartLine("Workbook_Open", 0)
Lignes = .ProcCountLines("Workbook_Open", 0)
.DeleteLines Debut, Lignes
End With
End sub

En cochant référence "Microsoft visual Basic For Application Extensenbility 5.3"

Merci c'est parfait!!!

Bonjour

n'oublie pas de clôturer le post si la réponse te convient...

il faut cliquer sur le v d'une des réponses de ton sujet exemple :

cloture post

Fred

Rechercher des sujets similaires à "enregistrer demande ouverture fichier"