Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
540to544
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
540to544
540to544
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

TXT auslesen wenn.......

TXT auslesen wenn.......
31.12.2004 08:09:24
R.Schmitt
Guten Morgen,
zum Silvester :
Heute will ich´s wagen
euch eine Frage anzutragen.
Ein Text-file will ich lesen
und das Ganze ohne großes Wesen
Die Datei ward mehr als 100.000 Zeilen lang
bei ihrem Anblick ward´s mir Angst und Bang.
Alles lesen - ja das braucht Zeit und mit
so viel Daten komm´ich auch nicht weit.
Nur bestimmte Zeilen sollen´s sein
doch mein Excel Know-How sagte : NEIN
Drum frag´ich euch : Was muß ich sagen,
will ich nur diejenigen Zeilen haben
die im ersten, zweiten, oder dritten Feld
den Wert haben, den ich suche.
Die Lösung mir zu sagen ist sicher nicht die Welt
ich suchte schon hier und in manchem Buche.
Drum helft mir bitte - sagt mir wie ich´s mache
damit auch ich heut´abend fröhlich lache.
Genug der Schüttelreime ;-)))
Wie kriege ich´s hin aus einer TXT nur die
Zeilen auszulesen, in deren erster Spalte
z.B. einer bestimmte Artikelnummer und in
der zweiten oder dritten Spalte, ein ganz
bestimmter Kunde steht, der den Artikel
geliefert bekam ?
Das gesamte txt-file einlesen kann ich ja.
Nur die Bedingung kriege ich nicht gebacken.
Frohes Neues 2005 euch allen !!
R.Schmitt

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: TXT auslesen wenn.......
OttoH
Hallo R.,
wenn Du die ganze Datei eingelesen hast, reicht es aus, die gewünschten DAten per Autofilter herauszufiltern.
Gruß OttoH
AW: TXT auslesen wenn.......
R.Schmitt
Guten Morgen Otto,
nein - die ganze Datei möchte ich gar nicht einlesen.
Wäre mit weit über 100.000 Zeilen wohl auch etwas zu
lang und geht auf kosten der Performance.
Ich benötige nur bestimmte Zeilen aus dem ganzen Wust.
Und zwar diejenigen, in denen sich eine bestimmte
Artikelnummer findet und eine bestimmte Kundennummer.
Nur diese Zeilen sollen dann in meine Excel Datei ein-
gelesen werden.
Danke
R.Schmitt
Anzeige
KLEINE BEISPIELDATEI
R.Schmitt
https://www.herber.de/bbs/user/15463.txt
Nehmen wir an, ich will aus der Beispieldatei
nur die Zeilen in Excel holen, in denen der
Kunde Müller und der Artikel Hemd ist.
Gruß
R.Schmitt
AW: KLEINE BEISPIELDATEI
HerbertH
das würde in etwa so gehen:
'ein Blatt mit dem Namen "Tabelle1" einfügen...
'in [f2] und [g2] die Suchkriterien eintragen...


Public Sub suchen()
Dim i%, letzteZ%, s As Byte
Dim sh As Worksheet, sh1 As Worksheet
Set sh = Sheets("15463")
Set sh1 = Sheets("Tabelle1")
sh1.[a2:d100].ClearContents
letzteZ = 2
  For i = 2 To 100
   If sh.Cells(i, 2) = sh1.[f2] And sh.Cells(i, 3) = sh1.[g2] Then
       For s = 1 To 4
         sh1.Cells(letzteZ, s) = sh.Cells(i, s)
       Next
        letzteZ = letzteZ + 1
   End If
  Next
End Sub

     gruß Herbert
Anzeige
AW: TXT auslesen wenn.......
OttoH
Hallo R,
dann Zeile für Zeile einlesen, die Positionen kontrollieren und behalten oder löschen.
Du wirst wohl nicht herumkommen, alle Zeilen zu lesen. Erst wenn Du sie gelesen hast, kannst Du feststellen, ob sie den Anforderungen genügt oder nicht.
Gruß OttoH
Ja genau - aber wie
R.Schmitt
Lieber Otto..........
und genau liegt der Hase im Pfeffer.
Das kann ich nicht. Zumindest noch nicht.
Mir fehlt einfach völlig das Verständnis,
wie das Makro aussehen könnte.
Sehr dankbar wäre ich dir daher, wenn Du
dir heute Morgen die Mühe machen würdest,
mir ein paar helfende Makrozeilen zu posten.
Danke
R.Schmitt
Anzeige
AW: TXT auslesen wenn.......
Reinhard
Hi R?,
ungetestet, probiers mal so:
Sub tt()
Dim zei As Long
Dim datnr As Integer
Dim Satz As String
Dim Wort1 As String, Wort2 As String
Wort1 = "Müller"
Wort2 = "Hemd"
zei = Range("A65536").End(xlUp).Row
datnr = FreeFile
Open "C:\temp\test.txt" For Input As #datnr
Input #datnr, Satz 'Überschrift
Cells(zei, 1) = Satz
While Not EOF(datnr)
Input #datnr, Satz
If InStr(Satz, Wort1) > 0 And InStr(Satz, Wort2) > 0 Then
zei = zei + 1
Cells(zei, 1) = Satz
End If
Wend
Close #datnr
End Sub
Gruß
Reinhard
AW: TXT auslesen wenn.......
R.Schmitt
Lieber Reinhard,
das mit dem Vornamen hatten wir ja glaub´ich schon mal ;-)
......ist der gleiche.
Deine Lösung funktioniert siehe Anhang :
https://www.herber.de/bbs/user/15464.xls
Nur wie krieg ich jetzt die Daten in unterschiedliche
Spalten ?
Viele Grüße
R.Schmitt
Anzeige
AW: TXT auslesen wenn.......
Reinhard
Hallo Reinhard,
entweder über Daten---TextinSpalten oder so:

Sub ze()
For n = 1 To 4
Range(Cells(n, 1), Cells(n, 4)) = Split(Cells(n, 1), Chr(9))
Next n
End Sub

Die Routine kann man auch in das Hauptmakro einbauen, wie nachfolgend gezeigt.
Gruß
Reinhard

Sub tt()
Dim zei As Long
Dim datnr As Integer
Dim Satz As String
Dim Wort1 As String, Wort2 As String
Wort1 = "Müller"
Wort2 = "Hemd"
zei = Range("A65536").End(xlUp).Row
datnr = FreeFile
Open "C:\Beispiel.txt" For Input As #datnr
Input #datnr, Satz 'Überschrift
Cells(zei, 1) = Satz
While Not EOF(datnr)
Input #datnr, Satz
If InStr(Satz, Wort1) > 0 And InStr(Satz, Wort2) > 0 Then
zei = zei + 1
Cells(zei, 1) = Satz
End If
Wend
Close #datnr
For n = 1 To zei
Range(Cells(n, 1), Cells(n, 4)) = Split(Cells(n, 1), Chr(9))
Next n
End Sub

Anzeige
AW: TXT auslesen wenn.......
31.12.2004 12:07:19
NE
Hallo ihr R² ;-)
Ohne dein File angeschaut zu haben,
wie sind denn die Wörter/Satz getrennt? Leerzeichen, Komma etc?
dann evtl mal mit Split versuchen, ungetestet:
dim arr
Input #datnr, Satz
If InStr(Satz, Wort1) &gt 0 And InStr(Satz, Wort2) &gt 0 Then
zei = zei + 1
arr=split(satz, ";") 'zB bei Semikolon
Range(Cells(zei, 1),cells(zei,ubound(arr)+1))) = arr
End If
Gruss Nancy
AW: TXT auslesen wenn.......
Reinhard
Hallo Nancy,
Trennungszeichen ist Zeichen Nr 9, glaub das ist Tab.
Lieben Gruß
Reinhard
AW: TXT auslesen wenn.......
31.12.2004 12:18:26
NE
Hi Reinhard,
hab grade mal ausgeschlafen;-)
Danke, wobei so wie du's machst, gehts natürlich auch.
Rutsch gut!
lg Nancy
Anzeige
O.T. TXT auslesen wenn.......
Reinhard
Hallo Nancy,
"ausgeschlafen" ? was ist das denn *gähn* *smile*
Dir auch ein schönes gesundes 2005
Lieben Gruß
Reinhard
AW: TXT auslesen wenn.......
Trennung
Hallo Nancy
Hallo Reinhard
hhmmmmm......trennen kann ich das, je nach
Tagesform, Außentemperatur oder Lust und
Laune.
Mit Kommata, Semikoli, oder Leerzeichen.
Ich mach´mal Schluß für heute und probiere
den Code dann erst im nächsten Jahr aus !
Bis dahin (melde mich auf jeden Fall,ob´s
tut, oder nicht)
Gruß
R.Schmitt

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige