sauvegarde incrémenté

W

WocaM

Guest
Bonjour

Apres avoir cherché sur le forum sans succes voila mon probleme

J'ai crée un fichieravec une feuille menu (avec des boutons) et d'autres feuilles cachés. Lorsque l'on clique sur un des boutons, je copie la feuille correspondante
et la, je voudrais sauvegardé automatiquement cette feuille dans un répertoire de stockage en donnant comme nom de fichier, le dernier nom "+1" des fichiers présent dans le répertoire mais sans passer par une cellule qui stockerai l'increment car le répertoire de stockage est susceptible de recevoir des fichiers dont le nom a été crée manuellement

J'espere avoir été assez clair et que quelqu'un pourra m'aidez
Merci d'avance
 
M

michel

Guest
Re: sauvegarde incrémentée

bonjour WocaM , bonjour Salim

cet exemple permet
de copier une des feuilles du classeur contenant la macro ( ici c'est la "Feuil1" )
de compter le nombre de fichiers deja existants dans le repertoire de destination
et d'enregistrer la feuille copiée en incrementant le nom d'une unité

nécéssite d'activer la reference Microsoft Scripting Runtime
dans visual basin Editor (Alt+F11 )
menu Outils
References
cocher la ligne Microsoft Scripting Runtime
cliquer sur "OK" pour valider


Sub ArchivageIncremente()
necessite d'activer la reference Microsoft Scripting Runtime
Dim Chemin As String
Dim Fso As Scripting.FileSystemObject
Dim SourceFolder As Scripting.Folder
Dim nbFichiers As Integer

' adapter le chemin du repertoire d'enregistrement
Chemin = "C:\Documents and Settings\michel\dossier\general\excel\repertoire stockage"

Set Fso = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = Fso.GetFolder(Chemin)
nbFichiers = SourceFolder.Files.Count + 1

ThisWorkbook.Sheets("Feuil1").Copy ' créée une copie de la feuille à enregistrer
ActiveWorkbook.SaveAs Chemin & "\" & "leNomDuFichier" & nbFichiers & ".xls"
'ActiveWorkbook.Close False ' fermeture du classeur enregistré

End Sub


bonne journée
MichelXld
 
W

WocaM

Guest
Re: sauvegarde incrémentée

bonjour Michel

Merci beaucoup

ceci correspond exactement a ce que je voulais, seulement j'ai encore une petite question. Comment formater le nombre incrementé dans vba de la forme 001, 002, etc... comme on peut le faire directement dans excel car avec la fonction format je n'arrive pas à trouver les bons arguments


Merci encore pour cette solution si rapidement donné
 
W

WocaM

Guest
bonjour salim


désolé de ne pas d'avoir remercier car en plus tu m'avais repondu tres vite
j'ai regadé hier soir tres rapidement le site que tu m'indiquais et je suis parti me coucher et ce midi en rentrant il y avait la reponse de michel qui me donnait la solution

bonne journée
 

Discussions similaires

Réponses
19
Affichages
2 K

Statistiques des forums

Discussions
311 540
Messages
2 080 525
Membres
101 234
dernier inscrit
Layani89