Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
128to132
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
128to132
128to132
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Textdatei per Macro bearbeiten

Textdatei per Macro bearbeiten
21.06.2002 12:54:52
Michael B.
Hallo,

wie kann ich eine Textdatei per Macro wie folgt bearbeiten :
In der Datei kommt immer ein Seitenumbruch der mit dem Wort
Datum beginnt. ich möchte nun gerne die Zeilen ab Datum plus 4
weitere Zeilen aus der Datei löschen um eine fortlaufende Liste zu erhalten, die ich dann in's Excel importieren kann.

Ich würde mich über jeden Vorschlag freuen.
Gruß Michael

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Textdatei per Macro bearbeiten
21.06.2002 13:51:50
Dirk
Hallo Michael,

da Du die Liste erst noch in Excel importieren willst, macht es meiner Meinung nach Sinn, die Textdatei außerhalb von Excel zu optimieren: Mit VB-Script! (...wenn es bei Dir installiert ist)
Dazu erstellst du eine Textdatei mit folgendem Inhalt, die Du z.B. "ohneDatum.VBS" oder so nennst. Und... Die Namen der Quell- und Zieldateien sind natürlich noch auf Deine Bedürfnisse anzupassen.


Set DateiObjekt=CreateObject("Scripting.FileSystemObject")
Quelle = "C:\Textdatei mit Datum.txt"
Ziel = "C:\Textdatei ohne Datum.txt"
SET DatenstromQuelle = Dateiobjekt.OpenTextFile (Quelle)
SET DatenstromZiel = Dateiobjekt.CreateTextFile(Ziel,TRUE)
DateiEnde = 0
Zeilenzaehler = 6
do while (DateiEnde = 0)
ON ERROR RESUME NEXT
Zeile = DatenstromQuelle.ReadLine
IF Err.Number = 0 THEN
IF LEFT(Zeile,5)="Datum" THEN Zeilenzaehler = 0
Zeilenzaehler = Zeilenzaehler + 1
IF Zeilenzaehler > 5 THEN DatenstromZiel.WriteLine Zeile
ELSE DateiEnde = 1
END IF
LOOP
DatenstromQuelle.close
DatenstromZiel.close
msgbox "Fertig",0,"Ende"

Anzeige
Re: Textdatei per Macro bearbeiten
21.06.2002 14:21:35
Michael B.
Hallo Dirk,
das ist genau das was ich gesucht habe - nach einer kleinen Anpassung hat es sogar funktioniert. Vor dem Datum stand da noch das Zeichen für neue Seite, also habe ich einfach Deinen Code in der Zeile IF LEFT(ZEILE,5) auf (ZEILE,6) und das Zeichen geändert und es geht prima.
Jetzt vieleicht noch ein Schritt weiter : Die Textdateien haben nicht immer den selben Namen. Würde das ganze auch mit Platzhaltern gehen ?
Wo kann man eigentlich VB-Sctipt für Windows lernen ? Ich hätte da noch mehr so kleinere Sachen die ich gerne so abwickeln würde, aber mit der Windowshilfe komme ich nie weiter.

1000 Dank schon mal
Gruß Michael

Anzeige
Re: Textdatei per Macro bearbeiten
21.06.2002 16:28:41
Dirk
Hallo Michael,

eigentlich gibt es fast nichts, was mit VBScript nicht geht. Mit Platzhaltern direkt kann man allerdings nicht arbeiten. Um nicht eine Universallösung zu erstellen: Wo sollen denn die Platzhalter im Dateinamen sein - oder besser, wie heisst denn so eine Datei?
(Hoffentlich gibt es keinen Verweis - ist ja schliesslich ein Excel-Forum)

P.S. Wo lernt man VBScript? Am billigsten mit der WScript Dokumentation von Microsoft.

Re: Textdatei per Macro bearbeiten
24.06.2002 10:00:03
Michael B.
Hallo Dirk,

erst mal Danke für Deine Hilfe. Mir Excel hat es doch eigentlich sehr viel zu tun - ich würde dann gerne im Excel ein Macro schreiben welchen das VBScript startet und die neue Exceltabelle einbindet. Übrigens die Textdateien heissen z.B. 01-2002 Stempelübersicht.txt, 02-2002 Stempelübersicht.txt usw.
Also monatlich kommt immer eine dazu.

P.S. wo gibt es denn wscript dokumentation?

Anzeige
Re: Textdatei per Macro bearbeiten
24.06.2002 16:00:30
Dirk
Hallo Michael,

die Dokumentation für den WindowsScriptingHost gibt es hier:
http://msdn.microsoft.com/scripting/windowshost/wshdoc.exe

Zu den Dateinamen: Sind alle Quelldateien in einem Pfad und sollen dann alle konvertiert werden? ... oder nur die aktuellste der Dateien? ... oder steht in dem Pfad nur die aktuellste Datei?
Übrigens: Wie soll die Zieldatei heißen? Bisher arbeitest Du ja mit einer Kopie.

Gruß Dirk

Re: Textdatei per Macro bearbeiten
24.06.2002 16:36:08
Michael B.
Hey Dirk,

die Dateien stehen alle in einem Pfad und monatlich kommt immer eine dazu. Also wäre die Konvertierung der neuesten am sinvollsten. Ja Zieldatei .... , im Excel würde ich ja dann gerne eine Arbeitsmappe für das Jahr anlegen und die Tabellenblätter würden dann Januar, Februar usw. heissen. (mit ß sah das früher besser aus - heißen - aber gut) Die Zieldateien könnten dann doch Januar.txt usw. genannt werden, name vorher ist ja 01-2002... Kann man daraus das word Januar ableiten?

Gruß Micha

Anzeige
Re: Textdatei per Macro bearbeiten
25.06.2002 15:57:49
Dirk
Hallo Michael,

folgende Lösung entspricht Deinen Anforderungen:

Ersetze die "Quelle=..."- und "Ziel=..."-Zeilen durch das hier:
Quelle = SucheAktuellsteDatei(Quellpfad)
Ziel = Zielpfad & DateiMonat(Quelle) & ".TXT"

Füge die beiden folgenden Zeilen darüber ein:
QuellPfad = "C:\"
ZielPfad = "C:\"

...und der Rest kommt ganz unten drunter.
Function SucheAktuellsteDatei(Quellpfad)
DIM Dateien, Datei, aktuellsteDatei
altDatum = "00-0000"
Set Ordner = Dateiobjekt.GetFolder(Quellpfad)
SET Dateien = Ordner.Files
IF Dateien.Count <> 0 Then
FOR EACH Datei IN Dateien
SET DateiInfo = Dateiobjekt.GetFile(Datei)
DateiName = DateiInfo.Name
IF RIGHT(DateiName,21) = " Stempelübersicht.txt" AND LEN (DateiName) = 28 THEN
Datum = LEFT(DateiName,7)
IF Datum > altDatum THEN
neustesDatum = Datum
aktuellsteDatei = Datei
END IF
altDatum = Datum
END IF
Next
SucheAktuellsteDatei = aktuellsteDatei
End If
SET Ordner = NOTHING
SET Dateien = NOTHING
SET DateiInfo = NOTHING
End Function

Function DateiMonat(Datei)
DIM Monatsnamen
Monatsnamen = Array("JANUAR","FEBRUAR","MÄRZ","APRIL","MAI","JUNI","JULI","AUGUST","SEPTEMBER","OKTOBER","NOVEMBER","DEZEMBER")
SET DateiInfo = Dateiobjekt.GetFile(Datei)
DateiName = DateiInfo.Name
DateiMonat = Monatsnamen(LEFT(DateiName,2)-1)
SET DateiInfo = NOTHING
END Function

Jetzt noch Quell- und Zielpfad anpassen und testen.

Viel Spaß
Dirk

Anzeige
Re: Textdatei per Macro bearbeiten
25.06.2002 16:17:06
Michael B.
Hey Dirk,

meine Kinder würden jetzt sagen : Voll krass - echt geil

es funtioniert tadelos !! Ich bin voll begeistert. Nur verstehe ich jetzt den Code fast gar nicht mehr, da werde ich mich mal ein Wochenende damit beschäftigen. Hast du das eben mal aus dem Ärmel gezaubert oder hast du schon mal in ruhe nach ähnlichen Sachen gesucht ? Ich find es einfach toll und DANKE !!!

Gruß Micha

Re: Textdatei per Macro bearbeiten
25.06.2002 16:17:46
Michael B.
Hey Dirk,

meine Kinder würden jetzt sagen : Voll krass - echt geil

es funtioniert tadelos !! Ich bin voll begeistert. Nur verstehe ich jetzt den Code fast gar nicht mehr, da werde ich mich mal ein Wochenende damit beschäftigen. Hast du das eben mal aus dem Ärmel gezaubert oder hast du schon mal in ruhe nach ähnlichen Sachen gesucht ? Ich find es einfach toll und DANKE !!!

Gruß Micha

Anzeige

42 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige