Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

sauvegarde d'une feuille avant fermeture classeur

5 réponses
Avatar
L-A
Bonjour

J'ai un classeur avec plusieurs feuilles et je souhaiterai qu'a l'enregistrement de mon classeur, la feuille nommé "BILAN" soit sauvegardée dans un dossier sur le réseau ( Z/sauvegarde bilan)

petite subtilité je souhaiterai que seules les valeurs et formats soient recopiés.

Merci de votre aide

bonne soirée

5 réponses

Avatar
MichD
Le 18/11/20 Í  12:35, L-A a écrit :
Bonjour
J'ai un classeur avec plusieurs feuilles et je souhaiterai qu'a l'enregistrement de mon classeur, la feuille nommé "BILAN" soit sauvegardée dans un dossier sur le réseau ( Z/sauvegarde bilan)
petite subtilité je souhaiterai que seules les valeurs et formats soient recopiés.
Merci de votre aide
bonne soirée

Bonjour,
Mets la procédure suivante dans le ThisWorkbook de ton classeur dans la
fenêtre de l'éditeur de code (VBA).
À chaque fois que tu vas enregistrer le fichier, une copie de la feuille
"Bilan" sera sauvegardée sous le nom : Bilan 20 11 18 13 27 49.xlsm
Ceci "20 11 18 13 27 49" représente la date de l'enregistrement au
format année mois jour h mm ss
Ce format date est utilisé afin de t'assurer que chaque nom du fichier
est différent. Durant une session de travail, tu peux enregistrer
plusieurs fois le fichier.
'---------------------------------------------
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Dim Nom As String, X As XlFileFormat
X = xlOpenXMLWorkbookMacroEnabled
Application.ScreenUpdating = False
With Worksheets("Bilan")
.Copy
Nom = .Name & " " & Format(Now(), "yy mm dd H MM SS") & ".xlsm"
With ActiveWorkbook
.SaveAs Filename:="Z:Sauvegarde" & Nom, FileFormat:=X
.Close False
End With
End With
Application.ScreenUpdating = False
End Sub
'---------------------------------------------
MichD
Avatar
MichD
Si tu préfères, tu peux conserver seulement un exemplaire du fichier par
jour.
À chaque fois que tu enregistres, la nouvelle copie écrase l'ancienne.
'-------------------------
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Dim Nom As String, X As XlFileFormat
X = xlOpenXMLWorkbookMacroEnabled
Application.ScreenUpdating = False
With Worksheets("Bilan")
.Copy
Nom = .Name & " " & Format(Date, "yy mm dd") & ".xlsm"
With ActiveWorkbook
Application.DisplayAlerts = False
.SaveAs Filename:="Z:Sauvegarde" & Nom, FileFormat:=X
Application.DisplayAlerts = True
.Close False
End With
End With
Application.ScreenUpdating = False
End Sub
'-------------------------
MichD
Avatar
L-A
Le mercredi 18 novembre 2020 Í  20:16:23 UTC+1, MichD a écrit :
Si tu préfères, tu peux conserver seulement un exemplaire du fichier par
jour.
À chaque fois que tu enregistres, la nouvelle copie écrase l'ancienne.
'-------------------------
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Dim Nom As String, X As XlFileFormat
X = xlOpenXMLWorkbookMacroEnabled
Application.ScreenUpdating = False
With Worksheets("Bilan")
.Copy
Nom = .Name & " " & Format(Date, "yy mm dd") & ".xlsm"
With ActiveWorkbook
Application.DisplayAlerts = False
.SaveAs Filename:="Z:Sauvegarde" & Nom, FileFormat:=X
Application.DisplayAlerts = True
.Close False
End With
End With
Application.ScreenUpdating = False
End Sub
'-------------------------
MichD

Formidable
Merci beaucoup
en revanche Í  la fin de la procédure, dois-je laisser application.screenupdating Í  False ?
Avatar
MichD
Le 18/11/20 Í  14:22, L-A a écrit :
Le mercredi 18 novembre 2020 Í  20:16:23 UTC+1, MichD a écrit :
Si tu préfères, tu peux conserver seulement un exemplaire du fichier par
jour.
À chaque fois que tu enregistres, la nouvelle copie écrase l'ancienne.
'-------------------------
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Dim Nom As String, X As XlFileFormat
X = xlOpenXMLWorkbookMacroEnabled
Application.ScreenUpdating = False
With Worksheets("Bilan")
.Copy
Nom = .Name & " " & Format(Date, "yy mm dd") & ".xlsm"
With ActiveWorkbook
Application.DisplayAlerts = False
.SaveAs Filename:="Z:Sauvegarde" & Nom, FileFormat:=X
Application.DisplayAlerts = True
.Close False
End With
End With
Application.ScreenUpdating = False
End Sub
'-------------------------
MichD

Formidable
Merci beaucoup
en revanche Í  la fin de la procédure, dois-je laisser application.screenupdating Í  False ?

Je suis distrait... tu devrais la remettre Í  True.
MichD
Avatar
L-A
Pour une fois et je crois que ça sera la seule fois que je trouve une coquille dans tes codes.:):):)
tu es formidable et moi je suis content d'avoir vu ça
merci
Le mercredi 18 novembre 2020 Í  20:43:57 UTC+1, MichD a écrit :
Le 18/11/20 Í  14:22, L-A a écrit :
Le mercredi 18 novembre 2020 Í  20:16:23 UTC+1, MichD a écrit :
Si tu préfères, tu peux conserver seulement un exemplaire du fichier par
jour.
À chaque fois que tu enregistres, la nouvelle copie écrase l'ancienne.
'-------------------------
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Dim Nom As String, X As XlFileFormat
X = xlOpenXMLWorkbookMacroEnabled
Application.ScreenUpdating = False
With Worksheets("Bilan")
.Copy
Nom = .Name & " " & Format(Date, "yy mm dd") & ".xlsm"
With ActiveWorkbook
Application.DisplayAlerts = False
.SaveAs Filename:="Z:Sauvegarde" & Nom, FileFormat:=X
Application.DisplayAlerts = True
.Close False
End With
End With
Application.ScreenUpdating = False
End Sub
'-------------------------
MichD

Formidable
Merci beaucoup
en revanche Í  la fin de la procédure, dois-je laisser application.screenupdating Í  False ?
Je suis distrait... tu devrais la remettre Í  True.
MichD