Une boucle dir qui renvoi toujours la même valeur
Résolu
pierrot69
-
borntobealive Messages postés 167 Statut Membre -
borntobealive Messages postés 167 Statut Membre -
Salut,
Voici mon problème je veux renommer des fichiers et les envoyer dans un autre dossier.
Jusque là facile je comptais utiliser la fonction Dir mais quand j'ecris mon code et que je vais dans l'outils de debug il ne change jamais la valeur de dec.fichier alors qu'il y a 8076 autres fichiers .csv qui n'attendent que ça ....
merci d'avance pour votre aide
Voici mon problème je veux renommer des fichiers et les envoyer dans un autre dossier.
Jusque là facile je comptais utiliser la fonction Dir mais quand j'ecris mon code et que je vais dans l'outils de debug il ne change jamais la valeur de dec.fichier alors qu'il y a 8076 autres fichiers .csv qui n'attendent que ça ....
merci d'avance pour votre aide
Dec.fichier = Dir(Dec.DOS_SOURCE & "/" & "*csv") 'definition des fichiers csv
If Dec.fichier <> "" Then
Do
Application.ScreenUpdating = False
Application.DisplayStatusBar = False
Set Dec.wk = Workbooks.Open(Filename:=Dec.DOS_SOURCE & "/" & fichier, local:=True)
Set Dec.wks = Dec.wk.Worksheets(1)
Dec.sauver = Left(Dec.fichier, 5) & Left(Right(Dec.fichier, 13), 4) & "-" & Left(Right(Dec.fichier, 18), 2) & "-" & Left(Right(Dec.fichier, 21), 2) & Right(Dec.fichier, 12)
Dec.wks.SaveAs Filename:=NOUV_DOS & sauver, CreateBackup:=False, local:=True
Dec.wk.Close
Application.ScreenUpdating = True
Application.DisplayStatusBar = True
Call evolution_fichier
Dec.fichier = Dir
Loop While Dec.fichier <> Dec.der_fichier
End If
11 réponses
-
Attention, si tu cherches les dossiers, il faut écrire dir (NOUV_DOS,vbDirectory) ou dir (S,vbDirectory), sinon Dir ne rend que les fichiers "simples" (sans attributs).
Tu as lu l'aide sur la fonction Dir ? -
-
merci pour ta réactivité,
non justement j'y avais pensé, parce que dir sans argument prend normalement le dir suivant de la dernière instruction et là bah ... non -
Tu as essayé de supprimer des morceaux de ton code pour voir si ton problème était lié à une action particulière (appel à evolution_fichier, open, SaveAs ...) ?
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
en fait c'est pas le premier dir qui bug dans ma sub, juste au dessus je creer le nouveau dossier de stockage avec :
NOUV_DOS = dec.DOS_SOURCE & " modifier" TB = split (NOUV_DOS, "\") If dir (NOUV_DOS) = "" then S = TB(0) & "\" For i = 1 To UBound (TB) S = S & TB(i) & "\" dat = dir(S) If dat = "" MkDir S End If Next i End If
et là rebelote bug de Dir j'ai toujours comme resultat pour dat : "" même quand S = :D\ .... -
c'est toujours la même personne c'est juste que j'ai créé un compte entre temps
-
oui mais les attributs restaient pour moi assez vague
je vais essayé (pour la création de dossier )
....
ok un rpoblème de résolu, il cherche enfin les dossiers :-) merci
Malheureusement dir reste verouiller sur le premier fichier du dossier "blabla" dans la suite. j'ai essayer de supprimer les actions precedentes et ça n'a rien changer -
j'ai essayer de supprimer les actions precedentes et ça n'a rien changer
Tu es en train de me dire que dans ton Loop...Do While tu ne laisses que Dec.fichier = Dir et debug.Print Dec.fichier, Tu ne vois jamais rien d'autre que ton premier fichier (donc boucle infinie) ? J'ai du mal à te croire. -
-
pas tout à fait je fait même pas de debug.print j'ai les variables locales dans la fenêtre juste en dessous
-
erreur de synthaxe que je n'ai pas fait en recopiant sur le fichier source sur le forum j'utilise plus que de raison tab (toutes mes variables publiques sont dans un module à part : dec.) et evidement dec.fichier etait devenu dec.der_fichier .....
prout prout prout
2 heures sur une faute de frappe
désolé de t'avoir fait perdre ton temps
merci de m'avoir aidé sur les vbDirectory