Obligation d'enregistrer sous

  • Initiateur de la discussion Initiateur de la discussion Lemak
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

Lemak

Guest
Bonjour à tous:
j'ai un classeur excel comme modèle;comment obliger l'utisateur aprés saisie données d'enregister le classeur sous le nom tapé dans la cellule'A1'.Merci
 
Bonjour Lemak, le forum

voici un code pour enregistrer le fichier automatiquement à un endroit donné défini dans la cellule A1 de la première feuille du classeur.
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
ThisWorkbook.SaveAs ThisWorkbook.Worksheets(1).Range('A1').Value
End Sub
ce code, lui, enregistre une copie du classeur à un emplacement donné défini dans la cellule A1 de la première feuille du classeur.
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
ThisWorkbook.SaveCopyAs ThisWorkbook.Worksheets(1).Range('A1').Value
End Sub

Cordialement, A+
 
Salut Lernak, dans ThisWorkbook insère le code suivant. Il permet d'enregistrer le classeur encours sous le nom en A1 dans mes documents.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Nom$
Nom = CStr(Range('A1').Value)
ActiveWorkbook.SaveAs Filename:=Nom
End Sub

Ciao
 
Re

Salut Eric
rien dans la demande initiale ne précise qu'il faut empécher l'utilisateur d'enregistrer une copie du document ou il veut mais simplement comment obliger l'utisateur aprés saisie de données d'enregister le classeur sous le nom tapé dans la cellule 'A1' ce que fait le code de manière transparente.
sinon on peut piéger avec une variable de test (en ajoutant une gestion d'erreur et un message utilisateur pendant qu'on y est)
Code:
Public Enr_Valid As Boolean
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
Enr_Valid = True
On Error GoTo Fin
ThisWorkbook.SaveAs ThisWorkbook.Worksheets(1).Range('A1').Value
MsgBox 'Document enregistré', vbOKOnly + vbInformation
Fin:
Enr_Valid = False
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = Not (Enr_Valid)
End Sub

pour Blunet
ton code peut poser problème, il enregistrera le classeur actif et non le classeur contenant la macro beforeclose ce qui n'est pas forcément la même chose.

Cordialement, A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
187
Réponses
3
Affichages
258
Réponses
4
Affichages
482
Réponses
12
Affichages
344
Retour