Recopie en temps réel d'un fichier .txt

md_curl

XLDnaute Nouveau
bonjour,
je vais déja vous expliquer l'objectif avant, parce que c'est assez spécial ^^

donc j'ai un logiciel de gestion de stock qui est actualisé en temps réel, et qui me crée un fichier .txt (avec une seul valeur 0 ou 1).
je dois utiliser cette valeur pour commander une fonction dans un automate, qui lui va agir sur une machine.
j'ai la possiblité d'envoyer des valeurs en temps réel depuis excel en passant par un serveur de pts (OFS), ça fonctionne, par contre je peux pas le faire directement depuis le .txt
j'ai déja fait plusieurs macro sur excel, je lis bien le .txt, mais par contre, je suis obligé de fermer excel sinon le .txt ne s'actualise plus, et de plus, il faudrait que ça se fasse en continu.
si vous avez une idée, ça m'intéresse, merci. :)
 

md_curl

XLDnaute Nouveau
Re : Recopie en temps réel d'un fichier .txt

merci, pour vos réponses.

le fichier .txt est généré par le logiciel de gestion de stock, je n'ai aucun controle dessus.
faut juste que je lise ce fichier toutes les 5s par ex. et mettre la valeur dans excel.

j'ai déja fait une macro qui lis le .txt mais je n'ai pas réussi à le faire en continu et de manière automatique.
 
Dernière édition:

RENAUDER

Nous a quitté
Repose en paix
Re : Recopie en temps réel d'un fichier .txt

Bonjour,
J'ai simulé ton cas.
Dans ton application ne pas utiliser ce qui est entre les lignes avec astérisques
Une fois ton classeur Excel ouvert, tu peux aller lire dans un fichier texte et ramener la valeur dans une cellule Excel.
Code:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub OuvreFileTexte()
'Je simule un cycle de 20 x 5 secondes soit 100 secondes (à adapter)
    For i = 1 To 20
        Open "C:\Excel\OFS.txt" For Input As #1
        Input #1, Donnees
        Range("A65536").End(xlUp).Offset(1, 0).Value = Donnees
        Close #1
        [COLOR=seagreen]' **************************************************************[/COLOR]
        ' Ce code simule le changement de valeur dans le fichier texte
        Open "C:\Excel\OFS.txt" For Output As #1
        Select Case i
        Case 1, 3, 5, 7, 9, 11, 13, 15, 17, 19
            Print #1, "0"
        Case 2, 4, 6, 8, 10, 12, 14, 16, 18, 20
            Print #1, "1"
        End Select
        Close #1
        [COLOR=seagreen]' ***************************************************************[/COLOR]
        ' Lit le fichier texte toutes les 5 secondes
        Sleep 5000
    Next i
End Sub
 

md_curl

XLDnaute Nouveau
Re : Recopie en temps réel d'un fichier .txt

ça marche, merci,
par contre, si c'était possible de faire pour que la valeur importée, s'actualise toujours dans la même case, parce que là ça se met à la suite, sinon avec l'automate je pourrais pas suivre l'évolution :/
 

RENAUDER

Nous a quitté
Repose en paix
Re : Recopie en temps réel d'un fichier .txt

Bonjour,
Tu remplaces

Range("A65536").End(xlUp).Offset(1, 0).Value = Donnees
par
Range("A1").Value = Donnees

A1 correspond à la cellule où tu veux mettre ta valeur.
A toi de la définir
 
Dernière édition:

md_curl

XLDnaute Nouveau
Re : Recopie en temps réel d'un fichier .txt

bonjour :)
j'ai encore un petit soucis, j'arrive pas à faire transférer ma valeur lue vers mon automate, j'ai copié le module de recopie dans mon fichier excel de lecture/ecriture automate mais je sais pas trop comment le faire écrire la valeur dans la colonne "write value" automatiquement, et de plus la macro de recopie utilise beaucoup de ressouce, je suis obligé de stopper la macro pour pouvoir accèder à excel sinon y reste figé :/
j'ai encore du mal avec le vba, désolé :/
si joint le fichier, si vous pouvez jeter un œil, merci bien.

http://mdcurl.free.fr/Temp/OFSGrpW.xls
 

Discussions similaires