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

A propos de l'événement BeforeSave

3 réponses
Avatar
Alain
Bonjour à tous et, un peu en avance, bonnes fêtes de fin d'année.

Lorsque l'utilisateur sauve le document courant, je dois lui proposer, dans
la fenêtre classique de sauvetage, un nom de fichier qui est fonction du
contenu de certains champs du document.
Je dois donc utiliser l'événement BeforeSave mais je n'en sais pas beaucoup
plus.

Les exemple de l'aide en ligne ne change pas le nom courant du Workbook.
Auriez-vous un petit exemple avec un changement de nom ?

Avec mes remerciements anticipés,
Alain.

3 réponses

Avatar
Alain
Merci pour ta réponse mais...oups... on ne s'est pas compris du tout.

Je souhaite que l'utilisateur continue à utiliser les options Save et Save
As du menu Fichier et qu'il dispose de la boîte de dialogue permettant de se
déplacer dans les directorys... exactement comme lors d'un sauvetage normal.
Simplement, je dois proposer un nom de fichier très précis qui doit
apparaître dans la zone "Nom du fichier" de la boîte de dialogue de
sauvatage.

Alain.








"Michel69" a écrit dans le message de
news:
Bonjour et réciproquement pour les voeux,
voici ce qui marche chez moi :
Dans ton module (pas nécessairement le BeforeSave)
.................
Dim N As String
N = Range("feuil1!b2") '1er élément du nom du fichier
Dim N2 As String
N2 = Range("feuil1!b3") '2ème élément du nom du ficheir
Dim Sht As Worksheet
Set aSh = ActiveSheet
Call SauveClasseur 'appel d'une proc
ActiveWorkbook.SaveAs Filename:=(N) & " - " & (N2) ' Fusion du nom
le nom sera TOTO - TATA.xls
- SauveClasseur est un module qui contient les coordonnées du répertoire


enregistrer mon classeur :
Sub SauveClasseur()
' ChDir "Disque:1er Rep2ème Rep3ème Rep....."
End Sub

Tout ceci je le dois à tous les bénévoles du forum....! Sympa
Clair comme du jus de boudin mon explic..........
A+

Michel69


Bonjour à tous et, un peu en avance, bonnes fêtes de fin d'année.

Lorsque l'utilisateur sauve le document courant, je dois lui proposer,
dans


la fenêtre classique de sauvetage, un nom de fichier qui est fonction du
contenu de certains champs du document.
Je dois donc utiliser l'événement BeforeSave mais je n'en sais pas
beaucoup


plus.

Les exemple de l'aide en ligne ne change pas le nom courant du Workbook.
Auriez-vous un petit exemple avec un changement de nom ?

Avec mes remerciements anticipés,
Alain.







Avatar
MichDenis
Sub test()

Dim Chemin As String
Dim NomDuFichier As String

'Choix du lecteur du disque dur
CurDir "c:"
'Chemin sur le lecteur retenu
Chemin = "c:"
'Nom du fichier attendu
NomDuFichier = "denis.xls"

Application.Dialogs(xlDialogSaveAs).Show Chemin & NomDuFichier

End Sub




"Alain" a écrit dans le message de news:

Merci pour ta réponse mais...oups... on ne s'est pas compris du tout.

Je souhaite que l'utilisateur continue à utiliser les options Save et Save
As du menu Fichier et qu'il dispose de la boîte de dialogue permettant de se
déplacer dans les directorys... exactement comme lors d'un sauvetage normal.
Simplement, je dois proposer un nom de fichier très précis qui doit
apparaître dans la zone "Nom du fichier" de la boîte de dialogue de
sauvatage.

Alain.








"Michel69" a écrit dans le message de
news:
Bonjour et réciproquement pour les voeux,
voici ce qui marche chez moi :
Dans ton module (pas nécessairement le BeforeSave)
.................
Dim N As String
N = Range("feuil1!b2") '1er élément du nom du fichier
Dim N2 As String
N2 = Range("feuil1!b3") '2ème élément du nom du ficheir
Dim Sht As Worksheet
Set aSh = ActiveSheet
Call SauveClasseur 'appel d'une proc
ActiveWorkbook.SaveAs Filename:=(N) & " - " & (N2) ' Fusion du nom
le nom sera TOTO - TATA.xls
- SauveClasseur est un module qui contient les coordonnées du répertoire


enregistrer mon classeur :
Sub SauveClasseur()
' ChDir "Disque:1er Rep2ème Rep3ème Rep....."
End Sub

Tout ceci je le dois à tous les bénévoles du forum....! Sympa
Clair comme du jus de boudin mon explic..........
A+

Michel69


Bonjour à tous et, un peu en avance, bonnes fêtes de fin d'année.

Lorsque l'utilisateur sauve le document courant, je dois lui proposer,
dans


la fenêtre classique de sauvetage, un nom de fichier qui est fonction du
contenu de certains champs du document.
Je dois donc utiliser l'événement BeforeSave mais je n'en sais pas
beaucoup


plus.

Les exemple de l'aide en ligne ne change pas le nom courant du Workbook.
Auriez-vous un petit exemple avec un changement de nom ?

Avec mes remerciements anticipés,
Alain.







Avatar
Alain
Oui... oui... merci pour le code mais mon problème n'est pas là.
Mon problème c'est: comment utiliser l'événement BeforeSave ?
Il me semble que j'ai trouvé une solution.
Ce qu'il faut, c'est supprimer les Events avant le véritable save pour
éviter que l'événement ne soit appelé une seconde fois.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Dim nom_fichier As String

nom_fichier = Application.GetSaveAsFilename("XYZ.xls")
Cancel = True
Application.EnableEvents = False
ActiveWorkbook.SaveAs nom_fichier
Application.EnableEvents = True
End Sub

Alain.














"MichDenis" a écrit dans le message de
news:%23jt7%
Sub test()

Dim Chemin As String
Dim NomDuFichier As String

'Choix du lecteur du disque dur
CurDir "c:"
'Chemin sur le lecteur retenu
Chemin = "c:"
'Nom du fichier attendu
NomDuFichier = "denis.xls"

Application.Dialogs(xlDialogSaveAs).Show Chemin & NomDuFichier

End Sub




"Alain" a écrit dans le message de news:

Merci pour ta réponse mais...oups... on ne s'est pas compris du tout.

Je souhaite que l'utilisateur continue à utiliser les options Save et Save
As du menu Fichier et qu'il dispose de la boîte de dialogue permettant de
se

déplacer dans les directorys... exactement comme lors d'un sauvetage
normal.

Simplement, je dois proposer un nom de fichier très précis qui doit
apparaître dans la zone "Nom du fichier" de la boîte de dialogue de
sauvatage.

Alain.








"Michel69" a écrit dans le message de
news:
Bonjour et réciproquement pour les voeux,
voici ce qui marche chez moi :
Dans ton module (pas nécessairement le BeforeSave)
.................
Dim N As String
N = Range("feuil1!b2") '1er élément du nom du fichier
Dim N2 As String
N2 = Range("feuil1!b3") '2ème élément du nom du ficheir
Dim Sht As Worksheet
Set aSh = ActiveSheet
Call SauveClasseur 'appel d'une proc
ActiveWorkbook.SaveAs Filename:=(N) & " - " & (N2) ' Fusion du nom
le nom sera TOTO - TATA.xls
- SauveClasseur est un module qui contient les coordonnées du répertoire


enregistrer mon classeur :
Sub SauveClasseur()
' ChDir "Disque:1er Rep2ème Rep3ème Rep....."
End Sub

Tout ceci je le dois à tous les bénévoles du forum....! Sympa
Clair comme du jus de boudin mon explic..........
A+

Michel69


Bonjour à tous et, un peu en avance, bonnes fêtes de fin d'année.

Lorsque l'utilisateur sauve le document courant, je dois lui proposer,
dans


la fenêtre classique de sauvetage, un nom de fichier qui est fonction
du



contenu de certains champs du document.
Je dois donc utiliser l'événement BeforeSave mais je n'en sais pas
beaucoup


plus.

Les exemple de l'aide en ligne ne change pas le nom courant du
Workbook.



Auriez-vous un petit exemple avec un changement de nom ?

Avec mes remerciements anticipés,
Alain.