Nom de fichier et incrémentation

Overspeck

XLDnaute Nouveau
Bonjour,

Je fais une fois de plus appel à vous.

J'essaie de faire une macro qui va chercher l'existance ou non d'un fichier pour en déduire une référence et qui enregistrera le fichier sous cette référence etc...

Pour l'enregistrement c'est ok, j'ai réussi

Pour la recherche je me heurte au problème suivant :

La référence est de la forme "toto001". Je voudrais que la macro aille voir si toto001 existe et si oui regarder pour toto002 etc..... mais quand je marque la valeur 001 il me considère 1. J'ai donc pensé concatener les "00" mais cela limterais le nombre de références à 9.
Si vous avez des idées je suis preneur.

Cordialement,

Overspeck
 

Overspeck

XLDnaute Nouveau
Re : Nom de fichier et incrémentation

Pour le nom du fichier c'est justement ca l'astuce :

Il est du type 001.xls

Quand on clique sur générate la macro (voir se lance automatiquement quand on lance le fichier) :

-cherche si 001 existe dans un dossier spécifié. Si oui elle incrémente de 1
-cherche si 002 existe dans ce meme dossier. Si oui elle incrémente de 1
...........
-cherche si 00n existe.Si non

Elle incorpore 00n dans une cellule du fichier ( a voir l'utilité)

Elle sauvegarde ce fichier sous 00n

End sub:D

Pour ce qui est du fichier, je ne pense pas qu'il soit utile à la résolution du problème.
 
C

Compte Supprimé 979

Guest
Re : Nom de fichier et incrémentation

Re,

Dans ce cas, c'est encore plus simple (heuu pour moi, sorry ;))
Code:
Sub Bouton101_QuandClic()
Dim VPath As String, VNom As String, Ind As Integer
VPath = "J:\..."
' Création du nom du fichier en débutant à 1
Ind = 1
VNom = Format(Ind, "000") & ".xls"
' Vérifie que le fichier n'existe pas déjà
Do While Dir(VPath & VNom) <> ""
  ' Sinon on créé un nouveau nom avec un indice supérieur
  Ind = Ind + 1
  VNom = Format(Ind, "000") & ".xls"
Loop
Cells(6, 3).Value = VNom
' Quand le nom est Ok on sauvegarde
ActiveWorkbook.SaveAs Filename:=VPath & VNom
End Sub

A+
 

Overspeck

XLDnaute Nouveau
Re : Nom de fichier et incrémentation

Merci !!!:):)

Enfait au début j'avais pas vu l'utilité de la fonction left et je croyais qu'elle entrait en compte dans l'incrémentation (enfin je me comprend)

La formule marche parfaitement et m'a l'air moins gourmande que ce que j'avais et qui marchait hier.

Vu que les variables sont déclarées je pense que je n'aurais plus de mauvaises surprises :)

Encore merci pour ton aide, ca me serait pas venu à l'esprit d'utiliser un Do While

Edit : pour forcer la cellule à accepter le format, j'ai mis cells = "'" & Format.... mais j'ai le message d'alerte (losange avec !), y a t'il un moyen de le faire disparaitre ? (c'est vraiment pour faire mon chieur là, j'ai pas trouvé de format de cellule l'acceptant tel quel)

Overspeck
 
Dernière édition:

Discussions similaires

Réponses
3
Affichages
186
Compte Supprimé 979
C
Réponses
14
Affichages
738

Statistiques des forums

Discussions
312 332
Messages
2 087 367
Membres
103 528
dernier inscrit
maro