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
 

JNP

XLDnaute Barbatruc
Re : Nom de fichier et incrémentation

Re :),
Difficile de t'aiguiller sans ton code. Mais en faisant un test, ton problème de syntaxe vient peut-être qu'il faut convertir en String avant de concaténer. Essaie
Code:
Dim I As Integer
For I = 1 To 10
MsgBox ("toto" & CStr(Format(I, "000")))
Next I
et dit moi.
Bonne journée :cool:
 

Overspeck

XLDnaute Nouveau
Re : Nom de fichier et incrémentation

Raahh juste quand j'allais éditer pour dire que j'avais réussi. J'ai contourné le problème en créant une nouvelle variable dans la boucle. Là, nouveau problème au niveau de l'outil de comparaison :

Voila ce que j'ai élaboré a partir de recherches sur la toile :

For i = 1 To 10 '10 pour éviter de tomber dans une boucle de 999

c = Format(i, "000")


nom = Dir("C:\......") & "CN" & a & c 'CN est une partie de la référence et a est une variable déja définie avant
If nom <> "" Then
'test pour voir comment ca se passe dans la boucle MsgBox ("le nom existe")
Else
Cells(7, 3) = "CN" & a & c
Exit For

End If
Next i
 
Dernière édition:

Overspeck

XLDnaute Nouveau
Re : Nom de fichier et incrémentation

Rebonjour,

Depuis ce matin ma macro de marche plus :mad:

Je n'y ai pas touché donc je suis un peu dépassé sur le parametre qui fait que maintenant ca merde.

Voici ma macro :


For i = 1 To 999

c = Format(i, "000")

If Dir("\\serveur_admin\..." & "CN" & a & c & ".xls", vbNormal) <> "" Then

Else
Cells(6, 3) = "CN" & a & c
Exit For

End If

Next i

ChDir _
"\\serveur_admin\....."
NewFile = Cells(6, 3).Value

ActiveWorkbook.SaveAs Filename:=NewFile


Si quelqu'un voit un explication je suis preneur....
Enfait j'ai l'impression qu'automatiquement le fichier considère que le nom de fichier n'est pas pris
 

JNP

XLDnaute Barbatruc
Re : Nom de fichier et incrémentation

Bonjour Overspeck :),
Toutes tes variables sont elles déclarées (ça évite souvent les bugs) ?
"c" est-il bien considéré comme String pour garder les "001" par exemple ?
D'un autre côté, au départ, c'était une référence sur un lecteur : "C:\...", maintenant tu es en réseau "\\serveur..." ce qui n'est pas du tout la même chose (ton lecteur réseau "I:\partage" est déjà autorisé sur le serveur, alors que "\\serveur" a besoin de l'identifiant et du mot de passe, enfin il me semble...)
Le problème vient-il de là ?
Bon courage :cool:
 

Overspeck

XLDnaute Nouveau
Re : Nom de fichier et incrémentation

hey JNP :)

Mes variables ne sont pas déclarées, j'avais lu sur le net que cela n'était pas indispensable pour des programmes de ce type :(

Je vais essayer de creuser par là, par contre pas moyen de me rappeler comment je faisait a l'époque ou j'avais des cours de VB:confused:

C'est juste Dim c As string ?

Edit : j'ai modifié les chemin pour revenir a un "standard" et j'ai déclaré comme ci dessus et nada. J'ai l'impression que c'est au niveau du test Dir(.... que ca merde.
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : Nom de fichier et incrémentation

Re :),
Rien est indispensable, mais quand on cherche un bug, c'est bien pratique...
Pour ton Dir qui merderait, passe par un MsgBox qui te montrera si le chemin est juste, ou faux...
A + :cool:
 

Overspeck

XLDnaute Nouveau
Re : Nom de fichier et incrémentation

J'ai mis des msg box pour voir l'évolutioin du format. J'ai toujours un problème au niveau de l'affichage celllule (alors que le fichier s'enregistre bien sous 001.xls)

L'incrementation ne marche pas non plus:(


Sub Ref()

Dim c As String
Dim i As Integer
Dim newFile As Integer


If Cells(6, 3).Value <> "" Then
MsgBox ("Il y a déjà une référence")
Else

For i = 1 To 999

c = Format(i, "000")
MsgBox (c)
If Dir(" "J:\....\" & c & ".xls", vbNormal) <> "" Then
MsgBox ("test")
Else
Cells(6, 3) = c
Exit For

End If

Next i
MsgBox (c)
ChDir _
"J:\....\"
ActiveWorkbook.SaveAs Filename:=c
MsgBox (c)
End If
End Sub
 

Overspeck

XLDnaute Nouveau
Re : Nom de fichier et incrémentation

J'ai testé sans succès, je n'arrive pas a copier le classeur. Il est composé de plusieurs feuilles qui contiennent des formules excel, et j'aimerais donc avoir la totalité (ton prog n'a l'air de copier qu'un seule feuille).

De plus ca enregistre sous faux.xls...J'essaie de bidouiller mais je capte pas trop comment ton prog marche:confused:

Sub Bouton101_QuandClic()
Dim VPath As String, VNom As String, Ind As Integer

VPath = "J:\..."
' Compilation du nom du fichier
VNom = c = Format(i, "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
i = i + 1
' On récupère la bonne partie du nom de fichier
If i = 1 Then
VNom = Left(VNom, InStr(1, VNom, ".xls") - 1)
Else
VNom = Left(VNom, InStr(1, VNom, ".xls") - 3)
End If
VNom = VNom & "-" & i & ".xls"
Loop
Cells(6, 3).Value = VNom
' Quand le nom est Ok on sauvegarde
ActiveWorkbook.SaveAs Filename:=VPath & VNom

End Sub
 
C

Compte Supprimé 979

Guest
Re : Nom de fichier et incrémentation

Re,

De plus ca enregistre sous faux.xls...J'essaie de bidouiller mais je capte pas trop comment ton prog marche
Tu ne peux pas nous joindre ton fichier, ça serait plus facile ;)

Code:
[B][COLOR=red]VNom = c =[/COLOR][/B] Format(i, "000") & ".xls"
Ca, ce n'est pas possible !
Une variable égale une autre variable, ça ne peut pas fonctionner !

Je ne sais pas comment tu crées ton nom de fichier à la base !?

a+
 

Discussions similaires

Réponses
3
Affichages
172
Compte Supprimé 979
C
Réponses
14
Affichages
723

Statistiques des forums

Discussions
312 196
Messages
2 086 092
Membres
103 116
dernier inscrit
kutobi87