Datenausleitung per Makro-Schleife
10.03.2004 09:24:08
Rolf
ich habe zwei Spalten mit 1810 Zeilen in denen meine Daten stehen, die ich per Makro einzeln als txt-Dateien rausschreiben möchte.
In der ersten Spalte stehen die Dateinamen, wie die txt's heissen sollen, in der zweiten Spalte die dazugehörigen Daten:
Spalte A Spalte B
DAT0001.TXT blablabla
DAT0002.TXT testtesttest
DAT0003.TXT 1234567
DAT0004.TXT halllohallo
DAT0005.TXT hierundda
DAT0006.TXT versuchskannikel
usw. usw.
Nach jeweils 100 Zeilen kommt eine Leerzeile.
Das mit dem Datenausleiten hab ich Dank der genialen Leute hier im Forum schon per Makro hinbekommen:
Sub EXPORT()
'
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'
Open "..\DATEN\DAT0001.TXT" For Output As #1
Print #1, Range("B21").Value;
Close
'
Open "..\DATEN\DAT0002.TXT" For Output As #1
Print #1, Range("B22").Value;
Close
'
Open "..\DATEN\DAT0003.TXT" For Output As #1
Print #1, Range("B23").Value;
Close
'
Open "..\DATEN\DAT0004.TXT" For Output As #1
Print #1, Range("B24").Value;
Close
'
Open "..\DATEN\DAT0005.TXT" For Output As #1
Print #1, Range("B25").Value;
Close
'
Open "..\DATEN\DAT0006.TXT" For Output As #1
Print #1, Range("B26").Value;
Close
'
usw.
Wie Ihr seht, habe ich das Problem recht umständlich gelöst, da ich quasi jede Zelle einzeln anspreche. Dementsprechend lang sind auch die Makros (18 Einzelmakros mit je 100 Ausgaben, die nacheinander aufgerufen werden).
Für sowas bietet sich ja wohl eine Schleife an. Nur sind meine VBA-Kenntnisse eher bescheiden und nach drei Tagen Hilfe- und Bücher-wälzen bin ich nervlich etwas am ende.
Was ich rausgefunden habe ist, dass wohl eine For Each Anweisung für mein Problem in Frage käme, aber irgendwie bekomme ich das Ganze nicht gebacken.
Das Makro soll also für jede Zelle im Bereich von B1 bis B1810 deren Inhalt in eine einzelne txt rausschreiben und den dazugehörigen Dateinamen aus der entsprechenden A-Zelle nehmen. Leerzeilen sollen übersprungen werden.
Hört sich einfach an. Ist es für Profis sicher auch. Mich treibt es jedoch in den Wahnsinn.
Könnt Ihr mir weiter helfen? bin für jeden Hinweis dankbar.
Danke!
Rolf