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 :
Il enclenche donc le Timer1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub cmd_Click() Timer1.Enabled = True End Sub
- Dans le Timer1 :
Il recherche un certains fichier, grâce au chemin indiqué, et se sert du module1.
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
- Dans le Timer2 :
Il fait de même, avec le module2.
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
- Dans le module 1, il y a :
Il recherche le fichier, s'il ne le trouve pas, il passe au timer2, sinon il affiche un MsgBox.
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
- Dans le module2 :
Il fait la même chose, sauf que si lui ne le trouve pas, il passe au timer1.
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
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
Partager