Sauvegarde classeur : nom en fonction de la valeur d'une cellule ?

Belokan

XLDnaute Nouveau
Bonjour tout le monde,


Je cherche à créer une macro (je ne pense pas que cela soit possible autrement) pour enregistrer le classeur courant et l'envoyer ensuite par mail. La partie mail, c'est bon, ça marche.
Par contre, comment je pourrais faire pour sauvegarder le classeur sous un nom défini dans une cellule du classeur et y rajouter la date du jour par exemple ?

Petit hic : la cellule en question est une liste déroulante (Validation de données) contenant des mots séparés par des espaces, or le nom du classeur ne doit pas comporter d'espace (à remplacer par des _ éventuellement).

Pour résumé :
- j'ai une cellule A1 qui comprend une liste déroulante (exemple : nom X)
- je souhaite enregistrer le classeur courant sous le nom affiché dans cette cellule, y adjoindre la date du jour et remplacer les espaces par des _ (exemple : nom_X-27012011.xls)

Suis assez clair ? :confused:
Est-ce jouable selon vous ?


Merci d'avance pour vos retours. :)

@tte,
Belokan
 
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : Sauvegarde classeur : nom en fonction de la valeur d'une cellule ?

Bonjour Belokan,

Est-ce jouable selon vous ?

Oui

Ce qui est sûr, c'est que tu devras passer par un SaveAs, mais à priori il faut quelques informations en plus :

sous quel chemin enregistrer le fichier (dans quel dossier)
le fichier à enregistrer est celui contenant la macro ou un autre classeur ouvert ? est-ce le classeur actif lors de l'enregistrement ?
Dans quelle feuille de ce classeur (ou de celui contenant la macro, à préciser) se trouve la cellule A1 où se trouve le nom à attribuer au classeur
 

Pierrot93

XLDnaute Barbatruc
Re : Sauvegarde classeur : nom en fonction de la valeur d'une cellule ?

Bonjour belokan, Toto,

essaye ceci pour un enregistrement dans le répertoire courant :
Code:
ActiveWorkbook.SaveAs Range("A1").Value & Format(Date, "ddmmyyyy")

Bon après midi
@+
 

Belokan

XLDnaute Nouveau
Re : Sauvegarde classeur : nom en fonction de la valeur d'une cellule ?

Merci à vous pour ces retours !

@tototiti2008 :
1) il faudrait enregistrer le fichier sur le bureau, ou MesDocuments, ou tout autre endroit qui serait commun à plusieurs ordinateurs. Le fichier étant utilisé par plusieurs, sur différents postes, il faudrait quelque chose de cohérent.
2) Tout est dans le même classeur, y compris les macros. Le classeur comporte une feuille de forumulaire (à remplir par l'utilisateur), une de données, une d'explication et une d'historique. L'utilisateur ne pouvant accéder qu'à la première, les autres étant protégées en lecture.
3) La cellule A1 se trouve dans la première feuille (intitulée Formulaire), là où se trouvera un bouton pour sauvegarder et envoyer.

@Pierrot93 : merci pour ta formule, l'idée est bien là ! Je remarque que bien que le fichier soit sur le bureau, la macro me l'enregistre dans MesDocuments (mais pourquoi pas) : est-ce normal ? Reste à trouver comment remplacer les espaces par des _ ...
 

Pierrot93

XLDnaute Barbatruc
Re : Sauvegarde classeur : nom en fonction de la valeur d'une cellule ?

Re,

pour un enregistrement sur le bureau :
Code:
Dim chemin As String
chemin = CreateObject("WScript.Shell").specialFolders("Desktop")
ActiveWorkbook.SaveAs chemin & "\" & Replace(Range("A1").Value, " ", "_") & Format(Date, "ddmmyyyy")

traite également le remplacement des espaces...

bon après midi
@+
 

Discussions similaires

Statistiques des forums

Discussions
312 684
Messages
2 090 917
Membres
104 699
dernier inscrit
Azyra