Sauvegarde sous VBA - Excel

Résolu/Fermé
glebel - 5 sept. 2007 à 12:30
 Mickily - 15 mai 2008 à 16:07
Bonjour,

Je voudrais faire sous Excel des sauvegardes automatiques, sous un nouveau nom a chaque fois.

J'ai le code suivant, mais je ne parviens pas a faire du nom du fichier une variable. Je voudrais qu'a chaque nouvelle sauvegarde, NOM_MACRO prenne une valeur differente.

Sub Save()

'
NOM_MACRO= Sauvegarde_numero_X 'sauvegarde_numero_X est la variable qui change a chaque iteration de mon programme
'
ChDir "C:\Documents and Settings\klm32349\Desktop\WSPG Jeroen\Test_folder3"
ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\klm32349\Desktop\WSPG Jeroen\Test_folder3\NOM_MACRO.xls" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
End Sub

Quelle est la syntaxe pour que NOM_MACRO sauvegarde le fichier sous le nom Sauvegarde_numero_X est non sous le nom NOM_MACRO???
Merci d'avance pour votre aide
A voir également:

5 réponses

teteve Messages postés 123 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 23 février 2011 40
5 sept. 2007 à 12:40
Bonjour,

Tout simplement, dans ta commande :
ActiveWorkbook.SaveAs Filename:= "C:\Documents and Settings\klm32349\Desktop\WSPG Jeroen\Test_folder3\NOM_MACRO.xls"
il prend comme paramètre ce qu'il y a entre guillemets comme une chaîne de caractère "telle quelle".
Il faut donc la séparer en trois : le chemin du fichier, la variable du nom, et l'extension à rajouter derrière :
ActiveWorkbook.SaveAs Filename:= "C:\Documents and Settings\klm32349\Desktop\WSPG Jeroen\Test_folder3\" & NOM_MACRO & ".xls"
Amicalement
Teteve
0
Salut

Dis moi j'ai mon Fichier qui s'appelle Planning général avec VBA et je souhaite faire des enregistrements en renommant à chaque fois le fichier pour conserver le précedent.

J'ai regardé ton exemple que j'ai ssai de faire mais sans y parvenir pourrais tu m'aider?

Merci
0
teteve Messages postés 123 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 23 février 2011 40
5 sept. 2007 à 12:45
pour affiner :
si tu veux par exemple aussi créer des sauvegardes dont le nom est incrémenté à chaque fois, tu peux utiliser le même système avec les "&" pour créer le nom de ton fichier :

i = 1
NOM_MACRO = "sauvegarde" & Date & "-" & i
i = i + 1

(à modifier suivant ton code et tes besoins, ce petit bout de code n'est qu'à titre d'exmple...)
N'hésite pas à demander si tu as besoin de plus de renseignements
Teteve
0
Merci de votre aide ca a resolu mon probleme.

Je vais en profiter pour poser une autre question :

Je veux utiliser la commande Open pour ouvrir un fichier Excel, et lire une donnee dans une case precise. Ma macro est dans un fichier test, et je veux lire des donnes dans un fichier test 2 que je n'ai pas ouvert manuellement. Je fais donc :

Sub pool()

Open "C:\Documents and Settings\klm32349\Desktop\WSPG Jeroen\Test_folder\test2.xls" For Input As #1

ACAcomp = Cells(4, 2) ' Sauf que avec cette syntaxe, je lis la cellule (4,2) du fichier test et non de test2.
Partnumbercomp = Cells(5, 3)

Close #1b
End sub

Quelle est donc la syntaxe pour obtenir ce qu'il y a dans la cellule 4,2?

Encore merci
0
teteve Messages postés 123 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 23 février 2011 40
6 sept. 2007 à 00:57
Je te renvoie sur deux liens où tu devrais pouvoir trouver ton bonheur...
lire un fichier excel sous vb
https://drq.developpez.com/vb/tutoriels/Excel/Chapitre2/

En faisant un petit mix des deux tu devrais réussir à faire ce que tu veux...
Je suis désolé pour la réponse tardive et succinte, mais qq gros soucis de serveurs m'occupent pas mal. Je repasserai régulièrement ces prochains jours. Si tu n'as pas trouvé ce que tu voulais ou que tu n'as pas réussi, dis le moi que j'y jette un coup d'oeil plus approfondi.
Teteve
0

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

Posez votre question
Merci beaucoup pour les reponces. Je m'en suis a peu pres sorti avec tout ca.
0