Änderungen von .txt datei überwachen und in Excel einfügen
Hallo, bin seit heute neu bei Admin.de, und hab auch schon mein erstes Problem.
Hoffe irgend jemand hat eine Idee.
Ich habe in der Arbeit ein Progr. bei dem ich aus der Druckvorschau einen csv String in eine .txt Datei speichern kann.
Die .txt Datei habe ich in eine Excel Volage eingebunden, die sich beim öffnen aktualisiert.
Nun möchte ich erreichen, das sobald die .txt Datei überschrieben wird automatisch meine .xlt Datei geöffnet wird.
Ist es möglich, das ganze über Excel in der Datei (mit Makro) zu hinterlegen,
oder könnte ich es evtl. mit einem Batch an die .txt Datei versuchen?
und gibt es irgendwo einen Virtuellen Drucker, der mir die CSV direkt in eine .txt speichern kann?? Hab nur .pdf Drucker gefunden.
DANKE für alle Antworten die mich zum Nachdenken animieren
Hoffe irgend jemand hat eine Idee.
Ich habe in der Arbeit ein Progr. bei dem ich aus der Druckvorschau einen csv String in eine .txt Datei speichern kann.
Die .txt Datei habe ich in eine Excel Volage eingebunden, die sich beim öffnen aktualisiert.
Nun möchte ich erreichen, das sobald die .txt Datei überschrieben wird automatisch meine .xlt Datei geöffnet wird.
Ist es möglich, das ganze über Excel in der Datei (mit Makro) zu hinterlegen,
oder könnte ich es evtl. mit einem Batch an die .txt Datei versuchen?
und gibt es irgendwo einen Virtuellen Drucker, der mir die CSV direkt in eine .txt speichern kann?? Hab nur .pdf Drucker gefunden.
DANKE für alle Antworten die mich zum Nachdenken animieren
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 138122
Url: https://administrator.de/forum/aenderungen-von-txt-datei-ueberwachen-und-in-excel-einfuegen-138122.html
Ausgedruckt am: 22.04.2025 um 15:04 Uhr
14 Kommentare
Neuester Kommentar
Hallo michaellas und willkommen im Forum!
Grüße
bastla
gibt es irgendwo einen Virtuellen Drucker, der mir die CSV direkt in eine .txt speichern kann??
Da es sich bei Deinem nicht genannten Betriebssystem vermutlich um ein Windows handelt, könntest Du es mit der Installation eines lokalen Druckers "Generic / Text Only" versuchen (bis XP unter dem Hersteller "Standard", ab Vista unter "Generic" zu finden) - als Anschluss bietet es sich in beiden Fällen an, einen "Local Port" zu erstellen ...Grüße
bastla
Hallo michaellas,
mit vbs kannst du zum Beispiel mit:
eingestellter Zeit prüfen, wann sich das Datum deiner zu überwachenden Datei geändert hat.
Sprich, wann diese aktuallisiert wurde zuletzt. Und dann dementsprechend deine gewünschten Aktionen ausführen.
Gruss
Tsuki
mit vbs kannst du zum Beispiel mit:
Dim Aenderung, ZuletztGespeichert
Pruefen
wscript.Sleep 10000
Pruefen
wscript.Sleep 10000
Pruefen
'..........
Sub Pruefen ()
Pfad = "C:\MeineDatei.txt"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set F = FSO.GetFile(Pfad)
Aenderung = F.DateLastModified
If not Aenderung = ZuletztGespeichert then
ZuletztGespeichert = Aenderung
'Befehle ausführen
End If
Set FSO = nothing
Set F = nothing
End Sub
Sprich, wann diese aktuallisiert wurde zuletzt. Und dann dementsprechend deine gewünschten Aktionen ausführen.
Gruss
Tsuki
Hallo michaellas!
Zum Überwachen eines Ordners hatten wir hier einen Beitrag ...
Grüße
bastla
Kann ich mit "Generic/TextOnly" den CSV String, nicht nur an den Drucker senden, sondern diesen etwa in eine Datei speichern lassen?
Siehe Hinweis auf "Local Port" ...Zum Überwachen eines Ordners hatten wir hier einen Beitrag ...
Grüße
bastla
Hallo michaelles,
also wenn ich es richtig verstehe hast du eine "Vorlage"-Datei als Excel. In diese soll
bei Änderung der .txt oder .cvs Datei die neuen Daten in die Excel-Vorlage eingetragen werden,
z.Bsp.: Text1 in Zeile/Spalte "A1" usw.?
In diesem Falle bräuchten wir etwas mehr Details über Aufbau der .txt-Datei und was soll
in welche Felder bei Excel dann eingetragen werden.
Dann können wir den Script anpassen.
Und zwar in etwas so:
TestZeit 60 Sekunden:
Gruss
Tsuki
also wenn ich es richtig verstehe hast du eine "Vorlage"-Datei als Excel. In diese soll
bei Änderung der .txt oder .cvs Datei die neuen Daten in die Excel-Vorlage eingetragen werden,
z.Bsp.: Text1 in Zeile/Spalte "A1" usw.?
In diesem Falle bräuchten wir etwas mehr Details über Aufbau der .txt-Datei und was soll
in welche Felder bei Excel dann eingetragen werden.
Dann können wir den Script anpassen.
Und zwar in etwas so:
TestZeit 60 Sekunden:
Dim Aenderung, ZuletztGespeichert
Dim Pfadtxt , PfadExl
Dim PruefZeit
Dim objXLs
Pfadtxt = "C:\MeineDatei.txt"
PfadExl = "C:\MeinExcel.xls"
PruefZeit = 60
Set FSO = CreateObject("Scripting.FileSystemObject")
Set F = FSO.GetFile(Pfadtxt)
Aenderung = F.DateLastModified
ZuletztGespeichert = Aenderung
Set FSO = nothing
Set F = nothing
For i = 0 to PruefZeit
Pruefen
wscript.Sleep 1000
Next
Sub Pruefen ()
on error resume next
Set FSO = CreateObject("Scripting.FileSystemObject")
Set F = FSO.GetFile(Pfadtxt)
Aenderung = F.DateLastModified
If not Aenderung = ZuletztGespeichert then
ZuletztGespeichert = Aenderung
Set objXLs = WScript.CreateObject("Excel.Application")
objXLs.Workbooks.Open PfadExl
objXls.Visible = false
objXls.Range("A1").Value = Pfadtxt
objXls.Range("A2").Value = ZuletztGespeichert
objXls.Visible = True
End If
Set FSO = nothing
Set F = nothing
Set objXLs = nothing
End Sub
WScript.Echo "PruefeDateiaufAenderung-Script beendet"
Gruss
Tsuki
Hallo michaellas
in
Dann stellt sich mir die Frage, was VBS
Wenn du deinen Code schon etwas fertig hast (zum testen einfach mal) dann poste ihn doch mal.
Mit Beispiel, wie die Daten in der Textdatei aussehen und wo was von deiner .txt-Datei in welche Excelzeile soll.
Dann können wir das gemeinsam fertig bekommen.
Gruss
Tsuki
in
Pfadtxt = "I:\Michael auf i\Michi Ordner Allgemein\alles was Arbeit\TESTBEREICH\txtmit excel\PROBE2.txt
fehlen am Ende die "Ausführungszeichen" "Dann stellt sich mir die Frage, was VBS
Hab hier den Pfad eingetragen,aber es kommt "Fehler beim Kompilieren"
da kompiliert. Hast du den Script als .vbs abgespeichert?Was ich erreichen möchte ist, zu vereinfachen wenn ich (vom Programm aus das ich nicht ändern kann) die .txt Datei
ändere, sofort mit der ExcelVorlage weiterarbeiten kann, ohne diese irgendwo öffnen zu müssen.
das würde mein Code-Schnipsel erst einmal tun soweit. Aller dings müssen dann nur noch die Daten aus der .txt -Datei in die richtigen Felder deiner Exceldatei eingetragen werden.ändere, sofort mit der ExcelVorlage weiterarbeiten kann, ohne diese irgendwo öffnen zu müssen.
Wenn du deinen Code schon etwas fertig hast (zum testen einfach mal) dann poste ihn doch mal.
Mit Beispiel, wie die Daten in der Textdatei aussehen und wo was von deiner .txt-Datei in welche Excelzeile soll.
Dann können wir das gemeinsam fertig bekommen.
Gruss
Tsuki
Hi michaelles,
mein Beispielscript sollte dir zumindest einmal eine Meldung in ein Xls-File schreiben, sobald sich etwas
am Speicherdatum(zeit) deiner txt-Datei ändert. Das müßte auch soweit fiúnktionieren.
Jetzt möchte ich erst mal etwas das VBS-Schnipsel erklären und was du später machen kannst:
definiert dir Variablen, die du später an anderer Stelle benötigst
Das FileSytemObject
benötigen wir, um auf Dateien zugreifen zu können. Dabei ist egal ob wir mit
"FSO" wählen. Das können wir nennen, wie wir wollen. Wichtig ist nur das einer Variablen das FileSystemObject
gesetzt wird.
Dateien öffnen, schreiben oder lesen geht mit folgender Anweisung:
mit
erreichen wir einen Sleeptimer von 1000ms.
mit der for -Schleife im Zusammenhang des Sleeptimers und der maximalen Anzahl der Schleifendurchläufe (in unseren Beispiel)
erreichen wir, das die Subroutine "Pruefen" für 1 Minute aufgerufen wird, im Abstand von einer Sekunde jeweils.
Somit läuft das Script mindestens 1 Minute lang
in der Sub Prüfen musst du dann deine Befehle einbauen.
mit
prüfen wir, ob die letzte Änderung (Abspeichern der txt-Datei) gleich geblieben ist oder neu abgespeichert worde.
Ich denke, du solltest das erst einmal soweit nachvollziehen können in unserem Script. Den Aufruf der Excel-Datei und das Auswerten deiner Text-Datei widmen wir uns später zu, da ich schon wieder einen Termin habe.
Melde dich bitte.
Viele Grüße
Tsuki
mein Beispielscript sollte dir zumindest einmal eine Meldung in ein Xls-File schreiben, sobald sich etwas
am Speicherdatum(zeit) deiner txt-Datei ändert. Das müßte auch soweit fiúnktionieren.
Jetzt möchte ich erst mal etwas das VBS-Schnipsel erklären und was du später machen kannst:
Dim blabla
Das FileSytemObject
Set FSO = CreateObject("Scripting.FileSystemObject")
Set FSO '......
gesetzt wird.
Dateien öffnen, schreiben oder lesen geht mit folgender Anweisung:
' Art, wie die Datei geöffnet werden soll
'ForReading = 1
'ForWriting = 2
'ForAppending = 8
'hier schreiben:
Set MeineDatei = FSO.OpenTextFile("D:\testfile.txt", 8)
MeineDatei.WriteLine (time)
MeineDatei.WriteLine ("Test")
MeineDatei.Close
'hier auslesen:
Set MeineDatei = FSO.OpenTextFile("D:\testfile.txt", 1)
MeineDaten =MeineDatei. ReadAll '(ReadLine)
MeineDatei.Close
wscript.Sleep 1000
mit der for -Schleife im Zusammenhang des Sleeptimers und der maximalen Anzahl der Schleifendurchläufe (in unseren Beispiel)
PruefZeit = 60
Somit läuft das Script mindestens 1 Minute lang
in der Sub Prüfen musst du dann deine Befehle einbauen.
mit
Set FSO = CreateObject("Scripting.FileSystemObject")
Set F = FSO.GetFile(Pfadtxt)
Aenderung = F.DateLastModified
If not Aenderung = ZuletztGespeichert then
'Befehle
end if
Ich denke, du solltest das erst einmal soweit nachvollziehen können in unserem Script. Den Aufruf der Excel-Datei und das Auswerten deiner Text-Datei widmen wir uns später zu, da ich schon wieder einen Termin habe.
Melde dich bitte.
Viele Grüße
Tsuki
@tsuki
Vielleicht doch noch einmal als Tipp (das Original zum unten verlinkten Beitrag): How Can I Automatically Open New Files Added to a Folder? ...
Grüße
bastla
Vielleicht doch noch einmal als Tipp (das Original zum unten verlinkten Beitrag): How Can I Automatically Open New Files Added to a Folder? ...
Grüße
bastla
@bastla,
das ist auf jeden Fall ein super Tipp!
Dieser Script überwacht einen ganzen Ordner und dessen Inhalt (Dateien) auf Änderung.
Ich bin nur auf michaelles Frage eingegangen und wollte erklären, wie man generell eine Datei überwachen "könnte".
Trotzdem sollte michaelles sich deinen Tipp auch anschauen und analysieren und sich zum Schluss für das (für ihn) bessere Script entscheiden. Du bist da die bessere Hilfe, als ich.
Vielen Dank und viele Grüße
Tsuki
das ist auf jeden Fall ein super Tipp!
Dieser Script überwacht einen ganzen Ordner und dessen Inhalt (Dateien) auf Änderung.
Ich bin nur auf michaelles Frage eingegangen und wollte erklären, wie man generell eine Datei überwachen "könnte".
Trotzdem sollte michaelles sich deinen Tipp auch anschauen und analysieren und sich zum Schluss für das (für ihn) bessere Script entscheiden. Du bist da die bessere Hilfe, als ich.
Vielen Dank und viele Grüße
Tsuki