Sauvegarde sous VBA - Excel
Résolu
glebel
-
Mickily -
Mickily -
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
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:
- Sauvegarde sous VBA - Excel
- Logiciel de sauvegarde gratuit - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
5 réponses
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
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
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
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
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
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
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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