Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
568to572
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
568to572
568to572
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Josef - Textfile einlesen - Nachtrag!

Josef - Textfile einlesen - Nachtrag!
17.02.2005 08:58:17
Karl-Heinz
Hallo Josef...
das file sieht aus wie unter:
https://www.herber.de/bbs/user/18223.txt
zu finden.
Im Block 1 findest man das Datum, im Block 2 meine eigene Nummer und in Block 3 und 4 die Nummer die ich angerufen habe. Kannst du mal schauen?
Vielen Dank

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

Betreff
Datum
Anwender
Anzeige
AW: Josef - Textfile einlesen - Nachtrag!
17.02.2005 10:43:46
Josef
Hallo Karl-Heinz!
Da der Aufbau des Textfiles komplett unterschiedlich ist, muss man
die Aufbereitung des String neu gestalten!

Sub sucheInTextFile2()
Dim x As Long, lRow As Long
Dim Zeilen() As String, FName As String, sText As String
Dim tmp As String, s1 As String, s2 As String, s3 As String
Dim n1 As Integer, n2 As Integer, n3 As Integer, n4 As Integer, iCnt As Integer
Dim arrS As Variant
'On Error GoTo ERRORHANDLER
'Datei auswählen
FName = Application.GetOpenFilename("Textl Dateien (*.txt)," & _
"*.txt")
If FName = "Falsch" Then Exit Sub
'Suchbegriff(e) eingeben
sText = InputBox("Bitte gesuchte Nummer Eingeben!" & vbLf & vbLf & _
"Mehrere Nummern durch "","" trennen!", _
"Suche", "0171") 'Suchtext
If sText = "" Then Exit Sub
'Suchbegriff von falscheingaben (",", ":", ".", " ") bereinigen
sText = Trim(Replace(Replace(Replace(Replace(sText, ";", ","), ".", ","), ":", ","), " ", ""))
'Suchbegriffe aufteilen
arrS = Split(sText, ",")
With Application
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
.Calculation = xlCalculationManual
'.Cursor = xlWait
End With
Range("A:C").ClearContents 'Datenbereich löschen
'Schleife über die Suchbegriffe
For iCnt = 0 To UBound(arrS)
'Die letzten beiden Parameter geben das linke und rechte
'Begrenzungszeichen einer Zeile an, dies können auch
'mehrere sein.
If FindTerm(FName, CStr(arrS(iCnt)), Zeilen, vbLf, vbLf) Then
'Scleife um die Fundstellen
For x = 0 To UBound(Zeilen) - 1
tmp = Trim(Zeilen(x))
Do While InStr(1, tmp, "  ") > 0
tmp = Trim(Replace(tmp, "  ", " "))
Loop
n1 = InStr(1, tmp, " ")                      'erste Leerstelle suchen
n2 = InStr(n1 + 1, tmp, " ")                 'zweite Leerstelle suchen
n3 = InStr(n2 + 1, tmp, " ")                 'dritte Leerstelle suchen
n4 = InStr(1, tmp, CStr(Year(Date))) - 1     'Jahreszahl suchen
s1 = Trim(Mid(tmp, n1, n2 - n1))                 'Anrufende Nummer
s2 = Trim(Mid(tmp, n2, n3 - n2))   'Angerufene Nummer
s3 = Mid(tmp, n4 + 1, 8)         'Datum
'Daten nur eintragen, wenn gesuchte Nummer in der
'angerufenen Nummer vorhanden
If InStr(1, s2, CStr(arrS(iCnt))) = 1 Then
lRow = lRow + 1
Cells(lRow, 1) = s1
Cells(lRow, 2) = s2
Cells(lRow, 3) = DateValue(Left(s3, 4) & "." & _
Mid(s3, 5, 2) & "." & Right(s3, 2))
End If
'End If
Next
End If
Next
If lRow > 0 Then
MsgBox "Es wurden " & lRow & " Zeilen gefunden!"
Else
MsgBox "Suchbegriff nicht vorhanden!"
End If
ERRORHANDLER:
Debug.Print Err.Number; Err.Description
With Application
.ScreenUpdating = True
.EnableEvents = True
.DisplayAlerts = True
.Calculation = xlCalculationAutomatic
.Cursor = xlDefault
End With
End Sub

Die Funktion "FindTerm" bleibt unverändert!
Anzeige
AW: Josef - Textfile einlesen - Nachtrag!
17.02.2005 11:48:22
Karl-Heinz
Hallo Josef...
bekomme eine Fehlermeldung bei
s2 = Trim(Mid(tmp, n2, n3 - n2)) 'Angerufene Nummer
"ungültiger Prozeduraufruf oder ungültiges Argument" - liegt wohl daran dass n3 zu diesem Zeitpunkt null ist ?
Was meinst du?
AW: Josef - Textfile einlesen - Nachtrag!
17.02.2005 11:59:45
Karl-Heinz
Hallo..
wenn ich die Länge des eingelesenen strings erhöhe kann ich auch noch ein Leerzeichen finden oder? Denke dass kein leerzeichen mehr kommt deswegen kann ich n3 nicht definieren?
grüsse
AW: Josef - Textfile einlesen - Nachtrag!
17.02.2005 12:02:04
Josef
Hallo Karl-Heinz!
Gut das du mitdenkst!
Ich habe gesagt das die Funktion "FindTerm" unverändert bleibt!
Da habe ich gelogen;-)
Änddere die Zeile

ZZ(UBound(ZZ)) = Left(Mid$(a, v, w - v), 100)

ab in

ZZ(UBound(ZZ)) = Mid$(a, v, w - v)

Sorry;-))
Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige