J'en ai marre!!!! je comprend rien a ce qui se passe !!!!!

Résolu
1gazelle Messages postés 24 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 24 mars 2005 - 17 mars 2005 à 13:11
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 - 17 mars 2005 à 15:08
Il se passe un truc de dingue!
enfin du moins que franchement j'arrive pas a comprendre et du coup pas a resoudre!
en fait quand j'execute ca (j'ai viré unbout du code ou il n'y a pas de pb), il n'arrive pas a passer d'un fichier a l'autre dans la boucle do ....loop
si j'enleve la ligne ou je lance la fonction traitement_import, tout se passe bien.
hors cette fonction ne change rien et le pire c'est que dans mes message box : elle n'a effectivement rien changé!!!!
avant ou apres la fonction : il a toujours les bonnes valeurs pour File_Is et Fichier_Juste!!!
je comprend pas ce qu'il se passe...
mais alors pas du tout!

Sub Bt_parcourir_QuandClic()

Dim CHEMIN As String
Dim File_Is As String
Dim Fichier_a_Ouvrir As String
Dim Fichier_juste As String
Dim Type_OK As Boolean
Dim x As New clsDIR
Dim sPath As String



Init_Var_TDB
Type_OK = False
Fichier_a_Ouvrir = ""
sPath = ""
ActiveSheet.Range("A1").Select
'Désactive le rafraichissement de l'écran
Application.ScreenUpdating = False
TDB.Sheets(Feuille_Balance).Activate

'appel de la fonction du choix du chemin
GetDirectory
CHEMIN = Dossier

'Cherche les fichiers TXT
File_Is = Dir(CHEMIN & "*.TXT")
Do Until File_Is = ""
Fichier_juste = CHEMIN & File_Is
If VarType(File_Is) = vbBoolean Then
Else
'traitement lié au fichier de correspondance
Type_OK = Traitement_Import(CasBalance, Fichier_juste)
MsgBox "le fichier temporaire est " & Fichier_juste
MsgBox "le fichier est " & File_Is
End If
MsgBox "le fichier temporaire est " & Fichier_juste
MsgBox "le fichier est " & File_Is
File_Is = Dir
Loop
Application.ScreenUpdating = True
End Sub

3 réponses

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
17 mars 2005 à 15:08
Voici une option :
Faire une 1ere boucle avec ton Dir, pour stocker le nom de tous les fichiers à traiter dasn un tableau.
Refaire ensuite une boucle sur les éléments de ce tableaudans le corps de laquelle tu appeleras Traitement_import(). bien sur Traitement_Import ne doit ni supprimer ni ajouter de fichier potentiellement traitable : Ce serait de toute façon totalement incohérent !!
Christophe R
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
17 mars 2005 à 14:17
Salut
-1- Ton test If VarType(File_Is) = vbBoolean ne sert à rien puisque File_Is est une String, c'est toi même qui la dimensionne !
-2- Qu'y a t-il dans ta fonction/sub Traitement_Import ?
Comment tes paramètres sont définis ? ByVal ByRef ?
Si dedans tu refais un DIR, cela réinitialise la séquence et le Do-Loop ne veut plus rien dire

Vala
Jack
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
1gazelle Messages postés 24 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 24 mars 2005
17 mars 2005 à 14:42
ok pour le premier point : tu as tout a fait raison.
(en fait je recupere le code d'une autre personne donc bon...j'ai pas fais gaffe a l'utilite de ce point...
pour le second point, la fonction traitement_import fait appel a tout un tas de fonction reparti sur 11 modules... donc sans doute que il y a un dir dans tout ca!(mais je vais regarder meme si ca risque de prendre du temps lol)
mais si je ne peux pas enlever les dir qu'il ya dans la fonction traitemant_import, comment faire pour parcourir les fichiers contenu dans mon dossier sans utiliser un dir? ou en l'utilisant en local...? est ce possible...?
en tout cas, merci pour tout : j'ai une bonne piste là!
0
Rejoignez-nous