Bonsoir à tous !

Voilà, je suis sur un nouveau logiciel (eh oui, j'ai tout le temps des problemes xD).

Il est simple, enfaite ce que j'aimerai faire, c'est que lorsqu'on clique sur un bouton, il s'enclenche, et affiche un Msgbox une fois que tel fichier est présent dans tel dossier, je m'explique :

J'ai, sur ma form, 2 CommandButton appellés Cmd et Cmd2.
Cmd ===> Bouton pour démarrer l'analyse jusqu'à trouver le fichier
Cmd2 ===> Pour stopper l'analyse.

J'ai aussi 2 Timers.
Ils ont le même but, rechercher un fichier à un chemin précis.

J'ai aussi 2 modules pour les recherche de fichiers.


Je vous presente mon code, qui sera sans doute plus explicite que tout ce blabla.

- Dans le bouton démarrer :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Private Sub cmd_Click()
Timer1.Enabled = True
End Sub
Il enclenche donc le Timer1.


- Dans le Timer1 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Private Sub Timer1_Timer()
    Dim sz As String
 
 
    sz = FichierExiste("C:\Program Files\eChanblard\Incoming\test.txt")
End Sub
Il recherche un certains fichier, grâce au chemin indiqué, et se sert du module1.


- Dans le Timer2 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Private Sub Timer2_Timer()
    Dim i As String
 
 
    i = FichierExiste2("D:\Program Files\eChanblard\Incoming\test.txt")
End Sub
Il fait de même, avec le module2.


- Dans le module 1, il y a :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Public Function FichierExiste(ByVal Nom As String) As String
Dim attrib As Integer
On Error Resume Next
attrib = GetAttr(Nom)
If (Err <> 0) Then
Timer2.Enabled = True
Timer1.Enabled = False
Else
If ((attrib And vbDirectory) = vbDirectory) Then
 
FichierExiste = False
 
Else
MsgBox "trouvé !!"
 
 
 
 
End If
End If
End Function
Il recherche le fichier, s'il ne le trouve pas, il passe au timer2, sinon il affiche un MsgBox.


- Dans le module2 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Public Function FichierExiste2(ByVal Nom As String) As String
Dim attrib As Integer
On Error Resume Next
attrib = GetAttr(Nom)
If (Err <> 0) Then
Timer1.Enabled = True
Timer2.Enabled = False
Else
If ((attrib And vbDirectory) = vbDirectory) Then
 
FichierExiste2 = False
 
Else
MsgBox "trouvé"
 
 
 
 
End If
End If
End Function
Il fait la même chose, sauf que si lui ne le trouve pas, il passe au timer1.


Donc je pense que vous avez saisi à peu pres le projet.



Le probleme est le suivant :

Lorsque je clique Cmd qui enclenche le timer1, tout vas bien, mais quand je vais dans le dossier specifié et que je crée un nouveau fichier nommé "test.txt", il ne me le detecte pas.

Qu'est ce qui ne va pas dans mon code svp ?

Je sais que ma manière est compliquée, et il existe surement plus simple en utilisant une chaine...

Merci d'avance.
Bonne soirée

Pablo