Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Änderungen von .txt datei überwachen und in Excel einfügen

Mitglied: michaellas

michaellas (Level 1) - Jetzt verbinden

12.03.2010, aktualisiert 18.10.2012, 7148 Aufrufe, 14 Kommentare

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
Mitglied: bastla
12.03.2010 um 21:22 Uhr
Hallo michaellas und willkommen im Forum!
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
Bitte warten ..
Mitglied: michaellas
12.03.2010 um 21:57 Uhr
Hallo
Ja es ist Windows xp.
Und der Generic/TextOnly wird verwendet um auf einem Tally Drucker diesen CSV in eine gleichbleibende Druckvorlage einzubetten. Kann ich mit "Generic/TextOnly" den CSV String, nicht nur an den Drucker senden, sondern diesen etwa in eine Datei speichern lassen? Muß ich Montag gleich mal versuchen.

Hab leider mit meinen Rechten bei dem Programm, keine Möglichkeiten irgendetwas zu verändern, nur die Möglichkeit in .txt zu konvertieren(zwar etwas umständlich aber es funkt.) und kann mir so die Daten von der Druckvorlage für meine Vorlage zu nutze machen. (sollte halt aber mit so wenig Schritten wie möglich gehen).
Bitte warten ..
Mitglied: TsukiSan
13.03.2010 um 00:02 Uhr
Hallo michaellas,

mit vbs kannst du zum Beispiel mit:
01.
Dim Aenderung, ZuletztGespeichert
02.

03.
Pruefen
04.
wscript.Sleep 10000
05.
Pruefen
06.
wscript.Sleep 10000
07.
Pruefen
08.
'..........
09.
Sub Pruefen ()
10.
    Pfad = "C:\MeineDatei.txt"
11.
     Set FSO = CreateObject("Scripting.FileSystemObject")
12.
    Set F = FSO.GetFile(Pfad)
13.
    Aenderung = F.DateLastModified
14.
   If not Aenderung = ZuletztGespeichert then
15.
       ZuletztGespeichert = Aenderung
16.
      'Befehle ausführen
17.
  End If
18.
    Set FSO = nothing
19.
    Set F = nothing
20.
End Sub
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
Bitte warten ..
Mitglied: bastla
13.03.2010, aktualisiert 18.10.2012
Hallo michaellas!
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
Bitte warten ..
Mitglied: michaellas
13.03.2010 um 19:52 Uhr
Hallo Tsuki

DANKE für den Code, funktioniert super, auch wenn ich nicht alle Befehle verstehe.

Aber halt nur wenn ich die Excel Datei geöffnet habe.
Mein Problem ist , wenn ich die .txt Datei ändere (mit neuen Daten füttere) sollte Excel die Vorlage automatisch und von sich aus starten.
Bitte warten ..
Mitglied: TsukiSan
14.03.2010 um 00:59 Uhr
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:
01.
Dim Aenderung, ZuletztGespeichert
02.
Dim Pfadtxt , PfadExl
03.
Dim PruefZeit
04.
Dim objXLs
05.

06.

07.
Pfadtxt = "C:\MeineDatei.txt"
08.
PfadExl = "C:\MeinExcel.xls"
09.
PruefZeit = 60
10.

11.

12.
    Set FSO = CreateObject("Scripting.FileSystemObject")
13.
    Set F = FSO.GetFile(Pfadtxt)
14.
    Aenderung = F.DateLastModified
15.
       	ZuletztGespeichert = Aenderung
16.
    Set FSO = nothing
17.
    Set F = nothing
18.

19.

20.
For i = 0 to PruefZeit
21.
	Pruefen
22.
	wscript.Sleep 1000
23.
Next
24.

25.
Sub Pruefen ()
26.
	on error resume next
27.
    Set FSO = CreateObject("Scripting.FileSystemObject")
28.
    Set F = FSO.GetFile(Pfadtxt)
29.
    Aenderung = F.DateLastModified
30.
    If not Aenderung = ZuletztGespeichert then
31.
       	ZuletztGespeichert = Aenderung
32.
      	Set objXLs = WScript.CreateObject("Excel.Application")
33.
    		objXLs.Workbooks.Open PfadExl
34.
		objXls.Visible = false
35.
		objXls.Range("A1").Value = Pfadtxt 
36.
		objXls.Range("A2").Value = ZuletztGespeichert
37.
		objXls.Visible = True
38.
	
39.
   End If
40.
    Set FSO = nothing
41.
    Set F = nothing
42.
    Set objXLs = nothing
43.
End Sub
44.

45.
WScript.Echo "PruefeDateiaufAenderung-Script beendet"
Gruss
Tsuki
Bitte warten ..
Mitglied: michaellas
14.03.2010 um 10:52 Uhr
Hallo Tsuki danke für deine Antwort.

Pfadtxt = "C:\MeineDatei.txt"
PfadExl = "C:\MeinExcel.xls"

Pfadtxt = "I:\Michael auf i\Michi Ordner Allgemein\alles was Arbeit\TESTBEREICH\txtmit excel\PROBE2.txt
PfadExl = "I:\Michael auf i\Michi Ordner Allgemein\alles was Arbeit\TESTBEREICH\txtmit excel\txtprobeteil2.xls"

Hab hier den Pfad eingetragen,aber es kommt "Fehler beim Kompilieren"
"Außerhalb einer Prozedur ungültig"
(Hab sicher irgendwas falsch gemacht.)

>In diesem Falle bräuchten wir etwas mehr Details über Aufbau der .txt-Datei

Die txt Datei die ich abspeichern kann hat z.B. (Text;Datum;Text;Zahl;.....)

In meiner ExcelVorlage hab ich es ganz einfach so gelöst, das beim öffnen der Vorlage mit Hilfe "Externe Daten Importieren" die Daten der .txt Datei Automatisch eingefügt werden.(Aufbau und Länge der .txt ist immer gleich, nur der Inhalt ändert sich.
in Tabelle1 A1;B1;C1;... kommen die Daten z.B (Text;Datum;Text;Zahl;...)
in Tabelle2, Tabelle3,... übernehme ich dann die Daten für meine Druckvorlage wo ich noch Daten ergänzen kann.

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.
Bitte warten ..
Mitglied: TsukiSan
14.03.2010 um 11:38 Uhr
Hallo michaellas

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.
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
Bitte warten ..
Mitglied: michaellas
15.03.2010 um 14:12 Uhr
HalloTsuki
Hab einwenig gebraucht und mir erst mal klar werden müssen was vbs eigentlich ist!!!!!!!
Hab es mit VBA verwechselt!!!!!!!

nun mal die Datensiehe unten)
mal abgesehen von den Daten´, irgendwie öffnet sich die Vorlage aber noch nicht wenn ich die .txt überschreibe.

TEXT Datei liegt auf (wird von mir immer überschrieben;Aufbau bliebt immer gleich)

P:\Schreibtisch\Listen\U-Bericht aktuelle Daten\RCA_BexSchein_CSV.txt

%%%BEXSCHEIN_LANG%%%
22249379;Zustellung: 12.03.2010;Tür;DEPOT:140;;;RailExpress;;Regelverkehr;;;;X;;; ;Peter Eichinger;;;Kagranerplatz;Wien;;A-1220;1220PET134;;33267808;Gel Express Logistik GmbH;;;Hans Martin Schleyer-Str. 15;Willich;;D-47877;8183196;DE160410593; ; ;1; ;1 Colli Handelsware;;;;;57.00;LC 22;Wien Hirschstetten; ; ; ; ;11.03.2010;LC 46;Wels;;;;;1403326780;33267808;11.03.10;BEX; ; ;11.03.2010; ;;;; ;1. : 1 Colli Handelsware;;Rohmasse [kg]: 57 ;; ; {|};{~}
%%%JOBEND%%%

EXCEL Vorlage liegt auf
P:\Schreibtisch\Listen\U-Bericht aktuelle Daten\U-Bericht mit CSV.xlt

%%%BEXSCHEIN_LANG%%%
`soll in Tabelle1 A20 stehen
22249379
`soll in Tabelle1 A21 stehen
Zustellung:12.03.2010
`soll in Tabelle1 B21 stehen
`C21;D21;.......usw
%%%JOBENDE%%%
`soll in Tabelle1 A22 stehen


mein VBS Script liegt auf
P:\Schreibtisch\Listen\U-Bericht aktuelle Daten\txtvbstest.vbs
01.
Dim Aenderung, ZuletztGespeichert
02.
Dim Pfadtxt , PfadExl
03.
Dim PruefZeit
04.
Dim objXLs
05.

06.

07.
Pfadtxt = "P:\Schreibtisch\Listen\U-Bericht aktuelle Daten\RCA_BexSchein_CSV.txt"
08.
PfadExl = "P:\Schreibtisch\Listen\U-Bericht aktuelle Daten\U-Bericht mit CSV.xlt"
09.
PruefZeit = 60
10.

11.

12.
    Set FSO = CreateObject("Scripting.FileSystemObject")
13.
    Set F = FSO.GetFile(Pfadtxt)
14.
    Aenderung = F.DateLastModified
15.
       	ZuletztGespeichert = Aenderung
16.
    Set FSO = nothing
17.
    Set F = nothing
18.

19.

20.
For i = 0 to PruefZeit
21.
	Pruefen
22.
	wscript.Sleep 1000
23.
Next
24.

25.
Sub Pruefen ()
26.
	on error resume next
27.
    Set FSO = CreateObject("Scripting.FileSystemObject")
28.
    Set F = FSO.GetFile(Pfadtxt)
29.
    Aenderung = F.DateLastModified
30.
    If not Aenderung = ZuletztGespeichert then
31.
       	ZuletztGespeichert = Aenderung
32.
      	Set objXLs = WScript.CreateObject("Excel.Application")
33.
    		objXlt.Workbooks.Open PfadExl
34.
		objXlt.Visible = false
35.
		objXlt.Range("A18").Value = Pfadtxt 
36.
		objXlt.Range("A19").Value = ZuletztGespeichert
37.
		objXlt.Visible = True
38.
	
39.
   End If
40.
    Set FSO = nothing
41.
    Set F = nothing
42.
    Set objXLs = nothing
43.
End Sub
44.

45.
WScript.Echo "PruefeDateiaufAenderung-Script beendet"
P.S.
Hab zwar schon einige Sachen in VBA gemacht, aber VBS ist komplettes Neuland für mich.

[Edit Biber] ad "Hab zwar schon einige Sachen in VBA gemacht, aber VBS ist komplettes Neuland für mich."
Aber beide kann man/frau in Codetags setzen (s.o.) [/Edit]
Bitte warten ..
Mitglied: TsukiSan
16.03.2010 um 00:24 Uhr
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:
01.
Dim blabla
definiert dir Variablen, die du später an anderer Stelle benötigst
Das FileSytemObject
01.
Set FSO = CreateObject("Scripting.FileSystemObject") 
benötigen wir, um auf Dateien zugreifen zu können. Dabei ist egal ob wir mit
01.
Set FSO '......
"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:
01.
' Art, wie die Datei geöffnet werden soll
02.
'ForReading   = 1 
03.
'ForWriting   = 2 
04.
'ForAppending = 8
05.
'hier schreiben:
06.
Set MeineDatei = FSO.OpenTextFile("D:\testfile.txt", 8)
07.
MeineDatei.WriteLine (time)
08.
MeineDatei.WriteLine ("Test")
09.
MeineDatei.Close
10.
'hier auslesen:
11.
Set MeineDatei = FSO.OpenTextFile("D:\testfile.txt", 1)
12.
MeineDaten =MeineDatei. ReadAll '(ReadLine)
13.
MeineDatei.Close
mit
01.
wscript.Sleep 1000 
erreichen wir einen Sleeptimer von 1000ms.
mit der for -Schleife im Zusammenhang des Sleeptimers und der maximalen Anzahl der Schleifendurchläufe (in unseren Beispiel)
01.
 PruefZeit = 60 
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
01.
    Set FSO = CreateObject("Scripting.FileSystemObject") 
02.
    Set F = FSO.GetFile(Pfadtxt) 
03.
    Aenderung = F.DateLastModified
04.
    If not Aenderung = ZuletztGespeichert then 
05.
         'Befehle
06.
    end if 
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
Bitte warten ..
Mitglied: bastla
16.03.2010 um 00:36 Uhr
@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
Bitte warten ..
Mitglied: TsukiSan
16.03.2010 um 13:32 Uhr
@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
Bitte warten ..
Mitglied: michaellas
16.03.2010 um 15:12 Uhr
Hallo
DANKE an Euch beide!!!!
Bin gerade etwas im Stress ( viel Arbeit mit Arbeit) (viel Arbeit mit Kind)
Bin aber schon dabei Euer Wissen in mich aufzunehmen.(kann aber einige Tage dauern)
DANKE
Bitte warten ..
Mitglied: TsukiSan
16.03.2010 um 23:12 Uhr
Hallo michaellas,

nur keine Hetz.
nimm dir Zeit und nicht das Leben

Gruss
Tsuki
Bitte warten ..
Ähnliche Inhalte
Microsoft Office

Txt. Datei in Excel auswerten und Gruppieren

Frage von LucaMarcMicrosoft Office5 Kommentare

Hallo liebe Administrator Community, dies hier ist mein erster Beitrag und direkt eine Frage. Ich habe das Problem das ...

Microsoft Office

Txt Dateien in Excel importieren

gelöst Frage von SerbitarMicrosoft Office9 Kommentare

Hallo Kollegen, Ich möchte gerne mittels Excel eine Txt einlesen und die Infos in Spalten aufteilen. Die Spaltenheader sind ...

Batch & Shell

Merkwürdige Zeilenformatierung in txt Datei

gelöst Frage von miczarBatch & Shell3 Kommentare

Hallo zusammen, ich arbeite mit .cxv Dateien. Das ist nichts anderes wie .txt Dateien nur mit Programmspezifischer Endung. Pro ...

Windows 7

Txt Datei mit findstr durchsuchen

gelöst Frage von 126594Windows 72 Kommentare

Hallo zusammen! Leider komme ich gerade an meine Grenzen und weiß nicht mehr weiter, jetzt hoffe ich hier, den ...

Neue Wissensbeiträge
Windows 7
Updategängelung auf Windows 10, die zweite
Information von Penny.Cilin vor 1 TagWindows 7

Hallo, da Windows 7 im kommenden Jahr nicht mehr supportet wird, werden Nutzer von Window 7 home premium wieder ...

Internet
EU-Urheberrechtsreform: Zusammenfassung
Information von Frank vor 3 TagenInternet1 Kommentar

Auf golem.de gibt es eine Analyse von Friedhelm Greis, der das Thema EU-Urheberrechtsreform gut und strukturiert zusammenfasst. Zwar haben ...

Microsoft Office

Office365 Schwachstellen bei Sicherheit und Datenschutz

Information von Penny.Cilin vor 4 TagenMicrosoft Office7 Kommentare

Auf Heise+ gibt es einen Artikel bzgl. Office365 Schwachstellen. Das ist noch ein Grund mehr seine Daten nicht in ...

Sicherheit
Schwachstellen in VPN Clients
Tipp von transocean vor 6 TagenSicherheit2 Kommentare

Moin, es gibt Sicherheitslücken bei VPN Clients namhafter Hersteller, wie man hier lesen kann. Gruß Uwe

Heiß diskutierte Inhalte
Notebook & Zubehör
Hardware defekt ?
Frage von mausemuckelNotebook & Zubehör14 Kommentare

Hallo und ein schönes Osterfest an alle. Ich benötige mal euer Schwarm wissen. Ich habe hier ein Notebook Lenovo ...

LAN, WAN, Wireless
Lancom und VLANs
Frage von TimmheLAN, WAN, Wireless11 Kommentare

Hallo an alle ich habe momentan ein sehr merkwürdiges problem bei dem ich nicht mehr weiter komme und hoffe ...

Netzwerkmanagement
Konfiguration von IPv6 in einer Domäne mit DHCP
Frage von gnoovyNetzwerkmanagement10 Kommentare

Hi Zusammen, ich bin gerade etwas am verzweifeln. Ich habe eine Testumgebung aufgebaut, um mich in das Thema IPv6 ...

Virtualisierung
Unix System virtualisieren
Frage von BananenmeisterVirtualisierung10 Kommentare

Hallo Zusammen, Ich möchte gerne eine Virtualisierungs-Software auf meinem kleinen ML Server installieren um einige Unix Systeme zu virtualisieren. ...