Boucler sur un fichier texte tant qu'il est vide

Bonjour a tous, mon application excel communique avec une application PC a l'aide d'un fichier texte. J'aurais besoin d'un petit bout de code qui lit un fichier texte tant qu'il est vide. Supposons que le fichier s'apelle "vers excel.txt"

lire fichier texte

si vide, on ferme le fichier texte et on recommence

suiite du code

Bonsoir,

Une piste avec OnTime. Adapter le chemin et nom du fichier et lancer avec la Sub "MarcheArret" (qui peut être liée à un bouton). Pour le test, si le fichier n'est pas vide, une boite de message apparaît avec "Le fichier n'est pas vide !" sinon, c'est reparti pour un contrôle au bout de 5 secondes :

Dim Marche As Boolean

Sub MarcheArret()

    Marche = Not Marche
    Timer

End Sub

Sub Timer()

    If Marche = True Then

        'toutes les 5 secondes
        Application.OnTime Now + TimeValue("00:00:05"), "Controle"

    End If

End Sub

Sub Controle()

    If FileLen("D:\vers excel.txt") = 0 Then

        'continu tant que vide
        Timer

    Else

        MsgBox "Le fichier n'est pas vide !"
        'ici le code si le fichier contient quelque chose...

    End If

End Sub

Hervé.

Salut, tres interessant ton code! Crois-tu que je peux integrer tout ca dans un seul sub, si je ne veux pas activer/desactiver. Dans la ligne "Application.OnTime Now + TimeValue("00:00:05"), "Controle" , le mot Controle causera t-il un probleme?

sub Controle

If FileLen("D:\vers excel.txt") = 0 Then 'continu tant que vide

Application.OnTime Now + TimeValue("00:00:05"), "Controle"

Else

MsgBox "Le fichier n'est pas vide !"

'ici le code si le fichier contient quelque chose...

End If

End Sub

J'ai finalement reussi a adapter ton code a mon utilisation:

Merci pour le coup de pouces!

Sub Polling2()  'Boucle tant que le fichier est vide , si Marche =true
  Dim adr$, nom$, Marche As Boolean
       adr = ThisWorkbook.Path
       nom = "vers excel.txt"

    Do
        If Marche = False Then Exit Do
        Sleep 500    'attend 500 msec
    Loop While FileLen(adr & "\" & nom) = 0

        MsgBox "Le fichier n'est pas vide !"
    End Sub
Rechercher des sujets similaires à "boucler fichier texte tant vide"