Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Sauvegarder sous "nom du fichier"

  • Initiateur de la discussion Initiateur de la discussion Zlopeck
  • 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 !

Z

Zlopeck

Guest
Bonjour à toutes et tous

Pour enregistrer un fichier j'utilise le code suivant collé dans Workbook:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:="D:\SAUVEGARDE\COMPTES\comptes 2010.xlsb"
ActiveWorkbook.SaveAs Filename:="Z:\COMPTES\comptes 2010.xlsb"
Application.DisplayAlerts = True
End Sub

Il fonctionne parfaitement mais j'aurais aimé pouvoir remplacer automatiquement "comptes 2010.xlsb" par le nouveau nom du fichier, à savoir "comptes 2011.xlsb" sans avoir à intervenir au niveau du code à chaque changement de nom.
J'ai hélas eu la désagréable expérience d'un tel fichier écrasé parce que j'avais totalement oublié d'intervenir au niveau du code de sauvegarde.
Ma question est donc : Par quoi remplacer la partie du code "comptes 2010.xlsb" pour obtenir " "D:\SAUVEGARDE\COMPTES\"nom du fichier".xlsb"
Merci d'avance pour votre aide
 
Re : Sauvegarder sous "nom du fichier"

Bonsoir Zlopeck

Je suis sur le un programme sensiblement identique ,je pense
et j'ai procédé ainsi .
regarde si tu peux en tirer quelque chose.

' SauvegarderClasseurActifSous le nom 2009()
Dim NomClasseur As String
'Saisie du nom du classeur à sauvegarder
NomClasseur = ActiveWorkbook.FullName
nom1 = ActiveWorkbook.FullName
'Enregistre les classeurs sous les noms prevus
'classeur 2010
nom = Mid(NomClasseur, 1, Len(NomClasseur) - 9) + CStr(annee_presente) + ".xlsb"
Application.DisplayAlerts = False
'sauve classeur sous 2009
ActiveWorkbook.SaveAs Filename:=nom1
'sauve classeur sous 2010
ActiveWorkbook.SaveAs Filename:=nom
'*****************************************************
'les classeurs2009 et 2010 sont identiques et sauvés
'******************************************************
ActiveWorkbook.SaveAs Filename:=nom
Application.DisplayAlerts = True

A+
 
Re : Sauvegarder sous "nom du fichier"

Bonsoir Zlopeck, néné06,

S'il n'y a qu'un seul point dans le nom complet du fichier :

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim nom As String
nom = Split(Me.Name, ".")(0) 's'il y a un seul point dans le nom complet
Application.DisplayAlerts = False
Me.SaveAs Filename:="D:\SAUVEGARDE\COMPTES\" & nom & ".xlsb"
Me.SaveAs Filename:="Z:\COMPTES\" & nom & ".xlsb"
Application.DisplayAlerts = True
End Sub

Il a l'avantage de fonctionner aussi bien sur Excel 2007 (.xlsm) que sur Excel 2003 (.xls).

Edit : remplacé ActiveWorkbook par Me, ça paraît plus logique...

A+
 
Dernière édition:
Re : Sauvegarder sous "nom du fichier"

Bonsoir à tous, le fil, le forum


Histoire de saluer Job75 😉
(test OK sur XL2010)
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim nom As String
nom = "\COMPTES\" & Split(Me.Name, ".")(0) 's'il y a un seul point dans le nom complet
Application.DisplayAlerts = False
Me.SaveAs "D:\SAUVEGARDE" & nom , 50
Me.SaveAs "Z:" & nom , 50
Application.DisplayAlerts = True
End Sub
 
Dernière édition:
Re : Sauvegarder sous "nom du fichier"

Bonsoir Jean-Marie,

J'ai essayé d'utiliser la macro de mon post #3 sous Excel 2003 (ma version d'Excel).

Vers l'extension .xlb ou .xla.

Excel 2003 plante systématiquement, et je ne sais pas pourquoi.

Tu as une idée ??

A+
 
Re : Sauvegarder sous "nom du fichier"

Bonsoir job75

Bonsoir Jean-Marie,
Vers l'extension .xlb ou .xla.

Tu veux dire xlsb ?
Excel 2003 ne connait pas

Voir dans l'aide VBA
Énumération XlFileFormat
Indique le format de fichier à utiliser pour l'enregistrement de la feuille de calcul.
Nom_____________Valeur ___________Description
xlExcel12________ 50 _____________Excel12

Si tu essayes:
xlAddIn__________ 18 _____________Complément Microsoft Excel 97-2003
xlExcel8__________ 56 _____________Excel8
Il se passe quoi ?

PS: xlb, c'est pour Excel.xlb
Le fichier Excel.xlb stocke des informations sur les modifications de menu, les autres types de modifications et les menus personnalisés.
source
 
Dernière édition:
Re : Sauvegarder sous "nom du fichier"

Bonjour le fil, le forum,

Merci Jean-Marie, mais j'essayais simplement d'adapter la macro de Zlopeck à Excel 2003, et ça ne marche pas...

Pour déterminer le nom du fichier sans l'extension, on peut aussi utiliser la méthode GetBaseName.

Sur la macro de Zlopeck cela donne :

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim oFSO As Object, nom As String
Set oFSO = CreateObject("Scripting.FileSystemObject")
nom = oFSO.GetBaseName(Me.Path & "\" & Me.Name) 'nom du fichier sans l'extension
Application.DisplayAlerts = False
Me.SaveAs Filename:="D:\SAUVEGARDE\COMPTES\" & nom & ".xlsb"
Me.SaveAs Filename:="Z:\COMPTES\" & nom & ".xlsb"
Application.DisplayAlerts = True
Set oFSO = Nothing
End Sub

Edit : je crois que ce code devrait fonctionner aussi :
Code:
nom = oFSO.GetBaseName(Me.Name) 'nom du fichier sans l'extension
A+
 
Dernière édition:
Re : Sauvegarder sous "nom du fichier"

Bonsoir à vous
Tout d'abord merci de vous être penché sur mon problème.
Je vais dès ce soir en essayer les variantes et je suis sur que cette modification va m'apporter une solution.
 
- 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

C
Réponses
8
Affichages
1 K
Réponses
20
Affichages
4 K
M
Réponses
5
Affichages
2 K
MOA_Excel
M
L
Réponses
13
Affichages
1 K
L
O
Réponses
5
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…