Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten aus *.txt bzw. *.log in *.xls importieren

Forumthread: Daten aus *.txt bzw. *.log in *.xls importieren

Daten aus *.txt bzw. *.log in *.xls importieren
17.06.2003 11:23:38
Angelika_26
Hallöchen,

ich habe mal eine kleine Frage und weiß einfach nicht mehr weiter.. und da ich Anfängerin bin hoffe ich auf wertvolle Hilfe von euch:))

Und zwar möchte ich Daten aus einem Log-File bzw. txt-File automatisch in eine Excel-Datei importieren lassen, wobei hierbei NUR die Zeilen automatisch in Excel exportiert werden sollen, die mit einem bestimmten Zeichen (in diesem Beispiel AN) anfangen.

Beispiel: Log-File/txt-File

AN1111 20030616 123546 123 18551913 3
AN1111 20030616 123456 456 14251425 5
OF1111 20030616 123546 789 14501455 7
OF1111 20030616 123456 012 14281429 8
AN1111 20030616 123456 456 18211825 7
OF1111 20030616 123456 012 11101120 2

Ausgabe-Ergebnis in Excel (nur dort wo die Zeile im Log-file mit den Buchstaben AN beginnt):
Spalte 1..........Spalte 2...........Spalte 3
20030616.......1855.................1913
20030616.......1425.................1425
20030616.......1821................ 1825

Ich hoffe, dass das Ganze einigermaßen verständlich erklärt ist...
Habt ihr einen Tip für mich?

Angelika

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Daten aus *.txt bzw. *.log in *.xls importieren
17.06.2003 11:39:50
Nike

Hi,
die Datei wirst du wohl erst per Öffnen Dialog ganz normal
importieren und dann in Excel entsprechend reduzieren müssen...
z.B. mit folgendem Makro...

sub löscher()
i=1
do
if left(cells(i,1),2)<> "AF" then
rows(i).delete
i = i-1
end if
i=i+1
loop until cells(i,1)=""
columns(1).delete 'Abschließed Spalte A löschen
end sub

Bye

Nike


Anzeige
Re: Daten aus *.txt bzw. *.log in *.xls importieren
17.06.2003 11:41:59
Michael Scheffler

Hi,

wen Du es nur ein paar mal brachst, kannst Du die Datei eingfach in Excel importieren, der Assistent führt Dich duch den Import. Und dann löschst Du die Zeilen, die Du nicht brauchst. Wenn Du es öfter brauchst, dann muüssen wir:-) eine kleine VBA-Routine schreiben.

Gruß

Micha

Anzeige
Re: Daten aus *.txt bzw. *.log in *.xls importieren
17.06.2003 12:23:39
Angelika

Ui so schnell Antwort ... damit hätte ich ja nun wirklich nicht gerechnet...
Natürlich könnte ich das ganz einfach über Excel importieren und mich dann über den Assistenten weiterführen, aber da ich das leider häufiger machen "muss", wäre es für mich praktischer das Ganze über eine Routine laufen zu lassen.
Das spannende an der Ganzen Sache ist - was ich noch nicht erwähnt habe- das zusätzlich eine 4. Spalte automatisch angefügt werden soll, in der die Differenz von Spalte 3 minus Spalte 2 stehen soll.
Also z.B.
Spalte 1.......Spalte 2.......Spalte 3.....Spalte 4
20030616.......1855...........1913.........28
20030616.......1425...........1430.........5
20030616.......1821...........1825.........4

Der "Wert in der Spalte 2" 1855 stellt die Anfangsuhrzeit 18:55 dar und 1913 --> 19:13 die Endzeit. Spalte 4 würde dann folglich die Dauer beinhalten.

Ich habe irgendwo folgendes Skript gefunden.
Das müsste natürlich angepasst werden, da ich als "Trennzeichen nicht das ";" habe sondern ein Leerzeichen.

Sub TextImport()
Dim rngFind As Range
Dim intRow As Integer
Dim strText As String, strFind As String
intRow = 1
Close
Open "E:\Programmierung\testdatei.txt" For Input As #1
Do Until EOF(1)
Line Input #1, strText
intRow = intRow + 1
Cells(intRow, 1) = DateValue(Left(strText, 8))
strText = Right(strText, Len(strText) - 9)
Cells(intRow, 2) = TimeValue(Left(strText, 8))
strText = Right(strText, Len(strText) - InStr(strText, ";"))
strFind = Left(strText, InStr(strText, ";") - 1)

Set rngFind = Rows(1).Find(Trim(strFind), lookat:=xlWhole, LookIn:=xlValues)
If Not rngFind Is Nothing Then
strText = Right(strText, Len(strText) - InStr(strText, ";"))

Cells(intRow, rngFind.Column) = Left(strText, InStr(strText, ";") - 1)


End If
Loop
Close
End Sub


Meint ihr ihr könntet mir da ein bissel behilflich sein?

Angelika


Anzeige
Re: Daten aus *.txt bzw. *.log in *.xls importieren
17.06.2003 13:41:20
Michael Scheffler

Hi,

das ist schon der richtige Ansystz. Schau Dir mal InStr und Split an.

Gruß

Micha

;
Anzeige

Infobox / Tutorial

Daten aus .txt oder .log in Excel importieren


Schritt-für-Schritt-Anleitung

Um eine Log-Datei (z.B. .txt oder .log) in Excel zu importieren, folge diesen Schritten:

  1. Excel öffnen: Starte Excel und öffne eine neue Arbeitsmappe.
  2. Daten importieren:
    • Gehe zu Daten > Daten abrufen > Aus Datei > Aus Text/CSV.
    • Wähle die Log-Datei aus, die Du importieren möchtest, und klicke auf Importieren.
    • Im Textimport-Assistenten wähle das richtige Trennzeichen (z.B. Leerzeichen).
  3. Filter anwenden:
    • Nach dem Import kannst Du die Zeilen, die nicht mit "AN" beginnen, löschen. Das kannst Du manuell tun oder mit einem VBA-Skript, das wir später betrachten werden.
  4. Spalten anpassen: Füge eine neue Spalte hinzu, die die Differenz zwischen den Uhrzeiten berechnet.

Häufige Fehler und Lösungen

  • Fehler beim Importieren: Wenn Excel die Datei nicht richtig erkennt, überprüfe, ob Du das richtige Trennzeichen gewählt hast.
  • Falsche Daten in den Spalten: Achte darauf, dass das Format der Daten in der Log-Datei den Erwartungen entspricht (z.B. Zeitformat).
  • VBA funktioniert nicht: Stelle sicher, dass Du die richtigen Zeilen und Spalten in Deinem VBA-Skript angibst.

Alternative Methoden

Wenn Du nicht immer das gleiche Log-File in Excel importieren musst, kannst Du auch folgende Methoden verwenden:

  • Direktes Kopieren und Einfügen: Öffne die Log-Datei in einem Texteditor, kopiere die relevanten Daten und füge sie direkt in Excel ein.
  • Excel-Importassistent: Nutze den Excel-Importassistenten, der Dir hilft, die Log-Datei in Excel zu importieren, ohne VBA verwenden zu müssen.

Praktische Beispiele

Hier ist ein einfaches Beispiel für ein VBA-Skript, das für das Importieren von Log-Dateien nützlich sein kann:

Sub ImportLogFile()
    Dim intRow As Integer
    Dim strText As String
    intRow = 1

    Open "E:\Pfad\zu\deiner\logdatei.log" For Input As #1
    Do Until EOF(1)
        Line Input #1, strText
        If Left(strText, 2) = "AN" Then
            Cells(intRow, 1) = DateValue(Left(strText, 8))
            Cells(intRow, 2) = TimeValue(Mid(strText, 10, 5))
            Cells(intRow, 3) = TimeValue(Mid(strText, 16, 5))
            Cells(intRow, 4) = Cells(intRow, 3) - Cells(intRow, 2) ' Berechnung der Differenz
            intRow = intRow + 1
        End If
    Loop
    Close
End Sub

Dieses Skript importiert nur die Zeilen, die mit "AN" beginnen, und berechnet die Differenz zwischen den Zeiten in Spalte 2 und Spalte 3.


Tipps für Profis

  • Automatisiere den Prozess: Wenn Du regelmäßig Log-Dateien importierst, speichere das VBA-Skript in Deiner Arbeitsmappe oder in der persönlichen Makrosammlung.
  • Verwende InStr und Split: Diese Funktionen können Dir helfen, die Zeilen noch besser zu filtern und zu verarbeiten.
  • Teste Dein Skript: Bevor Du das Skript auf große Datenmengen anwendest, teste es mit einer kleinen Testdatei.

FAQ: Häufige Fragen

1. Wie kann ich eine Log-Datei in Excel importieren?
Du kannst eine Log-Datei in Excel importieren, indem Du die Datei über Daten > Daten abrufen > Aus Datei > Aus Text/CSV auswählst.

2. Was tun, wenn beim Import Fehler auftreten?
Überprüfe das Trennzeichen und stelle sicher, dass die Formatierung der Log-Datei korrekt ist, bevor Du sie importierst.

3. Wie kann ich nur bestimmte Zeilen importieren?
Du kannst ein VBA-Skript verwenden, um nur die Zeilen zu importieren, die mit einem bestimmten Zeichen beginnen (z.B. "AN").

4. Ist es notwendig, VBA zu verwenden?
Wenn Du den Import häufig durchführen musst, ist die Verwendung eines VBA-Skripts empfehlenswert, um Zeit zu sparen. Ansonsten kannst Du auch den Excel-Importassistenten nutzen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige