TSV Dateien auslesen.

Bild

Betrifft: TSV Dateien auslesen.
von: Donfugo
Geschrieben am: 27.10.2015 15:52:23

Hallo Zusammen,
Problem:
Ich möchte eine Datei TSV mit Excel VBA auslesen. Diese sollte am Besten dabei nicht geöffnet werden, da eine Messanlage da automatisch immer Daten zeilenweise reinschreibt. Diese Daten möchte ich regelmässig auslesen (alle 30s bis 2 min). Dabei soll dann immer nur die Änderung ausgelesen werden. Gibt es da eine möglichkeit?
Für die wiederholung hab ich mir eine Schleife gedacht:

  • Sub upcounter()
    zeit = Now + TimeValue("00:00:2")
    Application.OnTime zeit, "upcounter"
    End Sub

  • Vielen Dank schonmal für die Hilfe

    Bild

    Betrifft: AW: TSV Dateien auslesen.
    von: Armin
    Geschrieben am: 27.10.2015 16:41:54
    Hallo,
    aus geschlossenen Files kannst Du keine Daten lesen. Wird denn die Datei zwischendurch geschlossen?
    Und was für ein Zyklus werden die Messdaten denn gespeichert? Und natürlich wie sieht denn die Datei aus (Muster)?

    Bild

    Betrifft: AW: TSV Dateien auslesen.
    von: Daniel
    Geschrieben am: 27.10.2015 16:46:36
    Hi
    wenn das ein Textdatei ähnlich CSV oder so ist, könntest du sie über die Importfunktion einlesen (Daten - Externe Daten - Aus Text)
    in den Import-Eigenschaften (Schritt "4" des Importassistenten, oder nächträglich über das Kontextmenü) kannst du dann auch die automatische Aktualisierung und das Intervall einstellen (ein Makro wird nicht benötigt).
    die Datei wird dabei nur ausgelesen, aber nicht zum Schreiben geöffnet.
    Gruß Daniel

    Bild

    Betrifft: AW: TSV Dateien auslesen.
    von: Donfugo
    Geschrieben am: 27.10.2015 17:13:57
    Hey,
    ja es handelt sich um eine Textdatei die durch Tabs gedrennt ist Muster:
    https://www.herber.de/bbs/user/101076.txt
    Bei dieser wird alle 30s bis 2 min(ist verschieden) eine Zeile hinzugefügt. Dieses wird durch eine anderes Programm im Hintergrund erledigt. Wenn die Datei offen ist kann das Proramm im Hintergrund keine Daten in die Datei schreiben. Aber eventuell hat das kurze auslesen von Excel gar keinen Einfluss.
    Über den Assistenten (gibt leider nur 3 von 3 Schritten) wurde der 4te nicht angezeigt.
    Würde dieses doch lieber gerne über Vba auslesen.
    Ziel ist (arbeite ich grad dran) eine Datei anwählen. Die Daten der Datei wird alle 20 sec ( _ Zeit einstellbar) ausgelesen und die Daten in ein Sheet geschrieben. Beim nächchsten auslesen sollen nur die Daten des Sheets aktualiesiert werden und nicht erneut alles eingefügt. Mein bisheriger Versuch die Datei auszulesen sieht so aus:

    
    Sub importdata()
    Dim i As Integer
    Dim SelItem
    With Application.FileDialog(msoFileDialogFilePicker)
        .Filters.Clear
        .Filters.Add "Text Dateien", "*.csv; *.txt", 1
        .AllowMultiSelect = True
        If .Show <> -1 Then Exit Sub 
        For Each SelItem In .SelectedItems
        Workbooks.OpenText Filename:=SelItem, Local:=True
        ActiveSheet.UsedRange.Copy ThisWorkbook.Sheets("Data").Cells(Rows.Count, 1).End(xlUp). _
    Offset(1, 0)
    ActiveWorkbook.Close False
           
        Next SelItem
    End With
      
    End Sub
    Grüße

    Bild

    Betrifft: AW: TSV Dateien auslesen.
    von: Donfugo
    Geschrieben am: 27.10.2015 17:20:15
    Nachtrag :D
    Mir kommt gerade es reicht ja wenn der die Datei einfach neu ausliest und einfügt. Wie kann ich (wie im vorigen Beispiel beschrieben) die Datei anwählen und mir merken (in Variable etc.). Also sicher stellen das die so eben angewählte Datei immer verwendet wird?
    Danke

    Bild

    Betrifft: AW: TSV Dateien auslesen.
    von: Donfugo
    Geschrieben am: 27.10.2015 17:23:17
    Aktiv

    Bild

    Betrifft: AW: TSV Dateien auslesen.
    von: Esmo
    Geschrieben am: 27.10.2015 18:12:57
    Moin Donfugo,
    wenn Du nur eine Datei auslesen willst, solltest Du vorbauen und .AllowMultiSelect = False
    nehmen.
    Gruß
    Ralph

    Bild

    Betrifft: AW: TSV Dateien auslesen.
    von: Donfugo
    Geschrieben am: 28.10.2015 08:38:44
    Hi Ralph,
    ja danke. Aber funktioniert mit beidem. SO hab ich die Wahl ob ich eine oder mehrere nutzen will

    Bild

    Betrifft: AW: TSV Dateien auslesen.
    von: Daniel
    Geschrieben am: 27.10.2015 19:48:43
    Hi
    der 4. Schritt ist, wenn er dich nach dem 3. Schritt fraget, ab welcher Zelle er die Daten importieren soll. es steht zwar nicht "Schritt 4" drüber, ist aber das 4. Fenster, in dem du was ausfüllen musst.
    ich bin weiterhin der Meinung, dass diese Funktion genau das macht was du willst und dafür keine VBA-Programmierung notwendig ist.
    Gruss Daniel

    Bild

    Betrifft: AW: TSV Dateien auslesen.
    von: Donfugo
    Geschrieben am: 28.10.2015 08:40:58
    Hallo Daniel,
    prinzipiell hast du Recht. Da aber später diverse Kunden das Programm auf verschiedenen anlagen verwenden soll. Sollte das "kundenfreundlicher" gestaltet werden.
    vg
    Don

    Bild

    Betrifft: AW: TSV Dateien auslesen.
    von: daniel
    Geschrieben am: 28.10.2015 10:11:25
    Hi
    wenn du solche Dateiauslesungen programmieren willst, dann schau dir mal den Anweisungskomplex
    OPEN, INPUT, LINE INPUT
    an. Damit kann man solche Dateien zeilenweise auslesen.
    du kannst auch die Dateien normal mit Workbook.Open bzw Workboo.OpenText öffen um die Daten per Copy-Paste zu übernehmen.
    Um sicher zu stellen, dass die automatische Aktualisierung dieser Dateien durch das Fremdsystem nicht behindert wird, öffnet man die Dateien schreibgeschützt (Parameter ReadOnly:=True)
    Gruß Daniel

     Bild

    Beiträge aus den Excel-Beispielen zum Thema "TSV Dateien auslesen."