Excel- Sauvegarder avec un nom special

Résolu/Fermé
mod77 Messages postés 1273 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 14 janvier 2024 - 8 mars 2010 à 10:23
mod77 Messages postés 1273 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 14 janvier 2024 - 8 mars 2010 à 14:03
Bonjour,

J'ai 3 questionnaires sous excel, dans 3 classeurs différents, je voudrais savoir comment faire pour les sauvegarder avec pour nom la référence du client donnée dans une cellule particulière [A1] par exemple,
et 3 lettres d'identification du questionnaire (ENT, PLA, DES).

En [A1] est écrit un nombre, référence du client: "rrrr"
le format d'enregistrement doit être: 3 lettres "qqq" se rapportant au questionnaire (ENT, PLA, DES)
et l'année en cours sur 2 chiffres: "yy"
si possible avec séparateur.

ce qui doit donner: yy_rrrr_qqq.xls

en pratique: 10_1234_PLA.xls

quelqu'un a-t-il une idée pour m'aider ? merci.

6 réponses

mod77 Messages postés 1273 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 14 janvier 2024 53
8 mars 2010 à 11:40
C'est bon! j'ai ça trouvé sur le site en passant par "rechercher"

Private Sub CommandButton1_Click()
ActiveSheet.SaveAs Filename:=[A1] & ".xls"
End Sub

je mettrai en A1 mon nom formaté comme je veux.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 750
8 mars 2010 à 11:41
Salut,
3 classeurs = 3 macros non?
classeur PLA :
en A1 la valeur correspondante (ex : "rrrr")
ActiveWorkbook.SaveAs Right(Year(Date), 2) & " " & [A1] & " PLA"

A adapter pour les autres classeurs...
0
mod77 Messages postés 1273 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 14 janvier 2024 53
8 mars 2010 à 12:24
Bonjour pijaku,

Ca tombe bien, je ne trouvais pas comment avoir les 2 dernier chiffres pour l'année.

Merci à vous !
0
mod77 Messages postés 1273 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 14 janvier 2024 53
8 mars 2010 à 12:39
J'ai une erreur cependant:
Voila mon code dans lequel j'ai adapté le format de date que vous m'avez donné, mais l'année n'apparait pas dans le nom du fichier. Seriez-vous dire pourquoi SVP ?

cherep = "C:\SAUVEGARDE\"
nom = Right(Year(Date), 2) & "_" & Sheets("questionnaire").Range("A4") & "_PLA"

ActiveWorkbook.SaveCopyAs Filename:=cherep & nom

rep = MsgBox("Fichier sauvegardé sous: " & nom, vbYes + vbInformation, "Classeur questionnaire")

ps: je ne sais ce que font les codes: vbYes et vbInformation car c'est un code que j'ai repris tel quel.

merci
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 750
8 mars 2010 à 13:04
Right(Year(Date), 2) renvoie les deux chiffres à droite de l'année "en cours". En l'occurence, renvoie ici "10". Pour obtenir 2010, suffit de mettre : Year(Date).
Si cela ne fonctionne pas, prodédez "pas à pas" comme suit :
Dim cherep As String, nom As String
cherep = "C:\SAUVEGARDE\"
MsgBox cherep
nom = Right(Year(Date), 2)
MsgBox nom
nom = Right(Year(Date), 2) & "_" & Sheets("questionnaire").Range("A4")
MsgBox nom
nom = Right(Year(Date), 2) & "_" & Sheets("questionnaire").Range("A4") & "_PLA"
MsgBox nom

Les différentes MsgBox vous indiquent donc pas à pas les noms sous lesquels vous pouvez enregistrer votre fichier. Vous verrez forcément d'où vient l'erreur...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mod77 Messages postés 1273 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 14 janvier 2024 53
8 mars 2010 à 13:47
Merci,
Ca marche maintenant!
Vous n'aviez pas d'idée pour ces info "vbYes + vbInformation" ? l'aide me dit qu'il n'y a pas d'info dessus.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 750
8 mars 2010 à 13:57
"vbyes + vbinformation" est un type de "format" de msgbox. VbYes nous donne un bouton "OK" sur le MsgBox (comme d'hab quoi...) et vbinformation nous stipule que la MsgBox est une information pour l'utilisateur, avec un beau "i" dans la msgbox.
En fait, il en existe plusieurs types. Les plus utilisés sont :
VbYesNo qui permet à l'utilisateur de choisir :
Dim result as String
result = MsgBox("Voulez-vous vraiment écrire : toto en cellule A1", VbYesNo)
If result = vbYes then
[A1] = "toto"
Else
Exit Sub
vbinformation, vbabortretryignore (comme son nom l'indique...), vbcritical (croix rouge dans la msgbox) etc...
0
mod77 Messages postés 1273 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 14 janvier 2024 53
8 mars 2010 à 14:03
On ne peut être plus clair, Merci!
0