Permanentes Auswerten einer externen Datei
#1
Hallo zusammen,

folgende Aufgabe stellt sich: Es liegt eine externe (Text-)Datei vor, deren Inhalt sich in verschiedenen Zeitabständen ändert.

Ich möchte den Inhalt der Textdatei in Excel einlesen und auswerten. Die Einlese-Prozedur (danke an den Ersteller) liegt bereits vor und funktioniert. Im Excel-Arbeitsblatt habe ich zwei Buttons definiert als "Start"- und "Stopp"-Button. 

Wenn der Startbutton gedrückt wird, soll in einem (selbst) definierbaren Zeitabstand (in u.g. Beispiel aller 5 Sekunden) die Textdatei eingelesen werden (Beenden mit Stopp).

Dieser Code führt leider nicht zum Ziel - die Anwendung hängt nach dem Start:

Option Explicit
Public Lauf As Boolean
   
Sub Schaltfläche1_Klicken()
   Lauf = True
   Do While Lauf = True
   
    InformationenImportieren
   
    'Verzögerung / Ruhepause
     Application.Wait (Now + TimeValue("0:00:05"))
 
  Loop
 
End Sub
 
Sub Schaltfläche2_Klicken()
 
  Lauf = False
 
End Sub
  
Sub InformationenImportieren()
  'Variablen definieren
  Dim QuellDatei As String 'SpeicherOrt der TextDatei
  Dim Zeile As Integer  'Laufvariable
  Dim Inhalt As String  'Inhalt der TextDatei
  Dim Informationen() As String 'Array der TextDatei
  Dim i As Integer   'Laufvariable 2
 
  'Tabellenblatt aktivieren
  ThisWorkbook.Worksheets("PListe").Activate
 
  'Startwerte zuweisen
  Zeile = 4
 
  'QuellDatei ansprechen
  QuellDatei = "C:\Users\Tmp\Import_Test.txt"
 
  'QuellDatei öffnen
  Open QuellDatei For Input As #1
 
  'Informationen in das Tabellenblatt eintragen
 
  Do While Not EOF(1) 'Schleife läuft bis Datenende
 
    'Inhalt der QuellDatei zeilenweise einlesen
    Line Input #1, Inhalt
    Informationen = Split(Inhalt, ";")
 
    For i = 0 To UBound(Informationen)
      ActiveSheet.Cells(Zeile, i + 2) = Informationen(i)
    Next
    Zeile = Zeile + 1
 
  Loop
 
  'QuellDatei schließen
  Close #1
 
End Sub
 
Fall jemand einen Hinweis hat, gerne her damit. Danke im Voraus!
Top
#2
Hallo,

vermutlich legt "Application.Wait" Excel "in Schlaf".

Veruche es mit "Application.OnTime".

https://snb-vba.eu/VBA_Application.OnTime_en.html


mfg
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • Wanderfalke
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste