Tägliche logs als neues Tabellenblatt erstellen

skyemugen
Goto Top

Mahlzeit zusammen,

wenn man an die Grenzen stößt, mit einer Frage sich nicht entblößt ... oder so.

Also weg vom Vorwort und ab zum Kern:

Vorhaben
Täglich wird in einem regulären XX-Minuten-Takt ein ping-log am Server erstellt, diese sollen nun monatlich in eine Datei gepackt werden (csv oder xls[x]).

Hintergrund
Warum das Ganze kann man sich fragen ... ganz einfach, die momentane ADSL-Verbindung ist einfach unter aller Kanone für einen Betrieb im Mittelstand, allerdings gibt es keine nahe günstige Alternative, dennoch möchte ich die Verbindung im gesamten Maße aufzeichnen, denn nur zu sagen: Lief mal wieder sehr langsam, viele Verbindungsabbrüche ist als Druckmittel für eine Finanzierung des Ausbaus des Anschlusses bei der GF nun einmal etwas mager face-wink

Was bisher geschah
Bisher habe ich ganz gewöhnliche Textdateien .log erstellt, was mir aber auch nicht gefiel, daher ist der aktuelle Stand das Erstellen einer täglichen .csv Datei mittels einer batch:

Und so hat man jetzt Verzeichnisse voller 2012-05-31_ping.csv etc. deren Ausgabe so ausschaut:

Was die Zukunft bringen wird
Das Abschaffen der einzelnen Dateien ist nun das Ziel, diese automatisiert als neues Tabellenblatt (Name des Blattes equ %Datum%) in einer monatlichen Datei hinten anzuhängen.
Ob das mit einer csv geht oder nur mit einer richtigen Excel-Datei (Office 2007 hier nutzbar), weiß ich nicht aber ich bin mir sicher, dass dies sicherlich via VBS(-inliner) lösbar ist und sich somit meiner Kenntnis entzieht ^__^

Zusammenfassung
2012-05-01_ping.csv - 2012-05-31_ping.csv => 2012-05_ping.csv mit den Tabellenblättern 2012-05-01 bis 2012-05-31

Na, dann hoffe ich mal auf eure Hilfe face-wink

Gruß,

André

Content-Key: 185708

Url: https://administrator.de/contentid/185708

Ausgedruckt am: 04.07.2022 um 11:07 Uhr

Mitglied: mak-xxl
mak-xxl 31.05.2012 um 17:46:25 Uhr
Goto Top
Moin André,

ein paar Fragen:

besteht jeweils die Möglichkeit:
  • das Datum zur Uhrzeit zu speichern?
  • je Monat eine csv-Datei zu erzeugen?
  • die Excel-Datei mit einem Tabellenblatt pro Monat zu strukturieren?

Hintergrund ist, dass ein Einlesen der csv-Dateien nach Excel zwar simpel ist, die Abfrage, welche die letzte, komplett eingelesene csv ist - resp. wenn die letzte zum Einlesezeitpunkt nicht komplett war, wieviele Zeilen dann zu löschen etc. pp. ...

Liegt nur eine Datei je Monat vor, wird dieser Prozess einfacher (i.e. Datei ist komplett, wenn neuer Monat), außerdem wird die Excel-Datei übersichtlicher (nur 12 Blätter á 31 x 24|48 Einträge).

Freundliche Grüße von der Insel - Mario
Mitglied: Skyemugen
Skyemugen 01.06.2012 um 09:03:56 Uhr
Goto Top
Aloha Mario,

wo ist jetzt der funktionale Unterschied der Abarbeitung?

Wenn du es für einfacher hälst eine Jahres-Excel-Datei mit 12 Blättern à eine eingelesene CSV-Datei zu verarbeiten, sehe ich den Unterschied zu einer Monats-Excel-Datei mit i.d.R. 30-31 Blättern à eine eingelese CSV-Datei nicht.

Was für Zeilen willst du löschen?

Pro Monat eine CSV-Datei wäre m.M.n. total banane bei 15-30 minütigen Abfragen, wo soll ich da noch einen klaren Überblick behalten?

Timo hatte mir per PM den PRTG Network Monitor vorgeschlagen aber der ist derzeit einfach zu viel des Guten.

greetz André
Mitglied: mak-xxl
mak-xxl 01.06.2012 um 09:33:10 Uhr
Goto Top
Moin André,

Zitat von @Skyemugen:
wo ist jetzt der funktionale Unterschied der Abarbeitung?

Wenn der Zeitpunkt des Einlesens in Excel nicht genau feststeht, sondern vom User willkürlich vorgenommen wird, kann es beispielsweise vorkommen, dass die csv-Datei eines Tages um 16:00 Uhr eingelesen wird - wenn diese also noch nicht komplett (für den Tag) ist. Ein nachfolgendes Einlesen, etwa einen Tag später, muss also zunächst feststellen, welche Zeilen des vergangenen Tages evtl. schon eingelesen wurden und muss nun
- entweder diese löschen und den Tag neu einlesen, oder
- alle nicht vorhandenen Zeilen dazulesen.

Da Du leider nichts über das Management der vorhandenen csv-Dateien (löschen, archivieren etc.) schreibst (und ebensowenig über das Einlesemanagement in Excel), halte ich es für sinnvoller, eine monatliche csv-Datei (dann inkl. Datumsfeld) zu jedem beliebigen Zeitpunkt in Excel einzulesen - alle bis dahin in der csv gesammelten Einträge sind dann in Excel vorhanden.

Wenn du es für einfacher hälst eine Jahres-Excel-Datei mit 12 Blättern à eine eingelesene CSV-Datei zu verarbeiten, sehe ich den Unterschied zu einer Monats-Excel-Datei mit i.d.R. 30-31 Blättern à eine eingelese CSV-Datei nicht.

Sollte auf der Hand liegen - sowohl beim Einlesen als auch bei der Auswertung ... Ansonsten favorisiere ich eine Jahresdatei - schon aus Gründen der Übersichtlichkeit.

Was für Zeilen willst du löschen?

Siehe oben.

Pro Monat eine CSV-Datei wäre m.M.n. total banane bei 15-30 minütigen Abfragen, wo soll ich da noch einen klaren Überblick behalten?

Ich war der Annahme, dass Du Dir den Überblick eben durch Excel verschaffen wolltest?! Und was 31 csv-Dateien gegenüber 1 csv-Datei für Vorteile haben sollen ...

Timo hatte mir per PM den PRTG Network Monitor vorgeschlagen aber der ist derzeit einfach zu viel des Guten.

Per PM kann ich auch ... Dir z.B. eine solche Excel-Lösung zusenden ...

Freundliche Grüße von der Insel - Mario
Mitglied: Skyemugen
Skyemugen 01.06.2012 um 09:50:36 Uhr
Goto Top
Zitat von @mak-xxl:
Wenn der Zeitpunkt des Einlesens in Excel nicht genau feststeht, sondern vom User willkürlich vorgenommen wird, kann es
beispielsweise vorkommen, dass die csv-Datei eines Tages um 16:00 Uhr eingelesen wird - wenn diese also noch nicht komplett
(für den Tag) ist. Ein nachfolgendes Einlesen, etwa einen Tag später, muss also zunächst feststellen, welche Zeilen
des vergangenen Tages evtl. schon eingelesen wurden und muss nun
- entweder diese löschen und den Tag neu einlesen, oder
- alle nicht vorhandenen Zeilen dazulesen.
??? Skript? Automatisiert? Taskplaner? Wenn ich was per Hand machen will, müsste ich hier ja nicht anfragen ... P.S.: Der User bin nur ich, sonst hat hier niemand etwas mit diesen Sachen zu tun face-wink

Da Du leider nichts über das Management der vorhandenen csv-Dateien (löschen, archivieren etc.) schreibst
CSV => Excel & CSV löschen, logisch, dachte ich ...
(und ebensowenig über das Einlesemanagement in Excel)
??? Genau darum dreht sich doch der ganze Thread?

Ich war der Annahme, dass Du Dir den Überblick eben durch Excel verschaffen wolltest?! Und was 31 csv-Dateien gegenüber
1 csv-Datei für Vorteile haben sollen ...
??? Wieso 31 CSV-Dateien, die habe ich momentan, genau darum will ich monatlich ja nur EINE Excel-Datei (12 also pro Jahr, da der monatliche Überblick dann einfacher fällt, wenn alles untereinander ist, weiß ich nicht, wo der Überblick sein soll ...)

Also noch einmal: Die Vorstellung war:
Täglich wird eine CSV erstellt (geschieht bisher - geht ja nur bis 23:30), diese soll dann via Skript (VBS [?]) als neues Arbeitsblatt in die für den Monat zuständige Excel-Tabelle eingelesen und danach wird die CSV gelöscht werden.
Bei einem neuen Monat soll eine neue Excel-Datei erstellt werden.

Ich möchte aus einem einfachen Grund keine Jahresdatei: Das Vergleichen von evtl. Stoßzeiten fällt beim Herabscrollen weniger leicht als wenn ich einfach auf das nächste Blatt wechsle, da die Uhrzeiten dann alle genau dieselben Zeilen haben.

greetz André
Mitglied: TsukiSan
TsukiSan 02.06.2012 um 15:16:38 Uhr
Goto Top
Hallo André

nun gibst du immer so viel Hilfe beim Batchen und bei deinem eigenen kleinen Problem wirst du mit so vielen Gegenfragen und Meinungen konfrontiert.
Nun Ja, ich habe mir überlegt, dir was in VBS zu basteln. Aber gib mir etwas Zeit. Ich denke, in den nächsten Tagen kriegen wir das hin.
Also zuerst zu meinem Verständnis:
1) Ordner einlesen mit den CSV-Dateien die da irgendwie 01.xx.JJJJ bis (maximal) 31.xx.JJJJ sind
2) Eine Excel-Datei anlegen die von Tabellenblatt 1 bis maximal 31 den Namen der CSV-Datei hat, respektive nur den Datumspart
3) Alle Daten aus dieser CSV in besagtes Tabellenblatt speichern und
4) dann die eingelesene CSV-Datei löschen.

Das lässt sich alles machen in VBS und ich würde mich freuen, dir auf diesem Wege VBS etwas näher zu bringen. Beim Batchen kann ich dir das Wasser nicht reichen!

Schönen Samstag und viele Grüße

Tsuki
Mitglied: TsukiSan
TsukiSan 02.06.2012, aktualisiert am 03.06.2012 um 03:50:55 Uhr
Goto Top
Hallo Andre,

hier mal ein "Gerüst" in VBS. Ich denke, du solltest das nicht in deine schöne Batch integrieren!
Weil auf die Schnelle und ungetestet, bitte teste das mal und wir müssen noch ein Finetuning machen! Aber vielleicht kommst du auf die ein oder andere Sacher selber.
Viele Grüße
Tsuki
Mitglied: TsukiSan
TsukiSan 02.06.2012 um 18:02:07 Uhr
Goto Top
....achso, André!

ob das mit Office 2007 funktioniert, das weiss ich überhaupt nicht! Aber bis Office 2003 sollte sich was tun.

Gruss
Tsuki
Mitglied: bastla
bastla 03.06.2012, aktualisiert am 04.06.2012 um 10:47:21 Uhr
Goto Top
Hallo Tsuki!

Eine (vermutlich performantere und jedenfalls in Office 2007 funktionierende) Alternative für die Zeilen 53 bis 60 könnte etwa so aussehen:
Grüße
bastla

[Edit] Sollte jetzt über VBS verwendbar sein [/Edit]
Mitglied: TsukiSan
TsukiSan 03.06.2012 um 23:48:21 Uhr
Goto Top
Hallo bastla,

danke für den Tipp! Da wird sich André sicher drüber freuen face-smile

Ich habe kein Office über dem 2003-er hinaus und bin mir nicht sicher, ob meine Idee mit 2007 überhaupt geht. Scheint sie aber doch face-smile

Schöne Woche und viele Grüße

Tsuki

Ps.: In meiner Idee oben muss noch einiges gemacht werden, damit es sauber funktioniert. Vielleicht hat André ja Lust gemeinsam dazu face-wink
Mitglied: bastla
bastla 04.06.2012 um 00:02:07 Uhr
Goto Top
Hallo Tsuki!
In meiner Idee oben muss noch einiges gemacht werden
... wobei allerdings zu unterscheiden wäre, oe es um ein Aufarbeiten kompletter "Monats"-Ordner (wie in Deinem aktuellen Ansatz) gehen soll (dann würde ich noch an eine Sortierung der Tabellenblätter auf Basis der Dateinamen - ev auch gleich vorweg - denken) oder ob in weiterer Folge (jeweils per Taskplaner zB um 23:40 aufgerufen - damit würden Marios Bedenken hinsichtlich nicht kompletter Daten wegfallen) nur die Datei des aktuellen Tages der (bereits existierenden) Excel-Datei hinzuzufügen wäre ...

Grüße
bastla
Mitglied: TsukiSan
TsukiSan 04.06.2012 um 07:46:27 Uhr
Goto Top
Hallo bastla,

genau! Diese Fragen sollte uns Andre beantorten, wei er's gern hätte face-wink
Bei mir wird noch nicht sortiert und nicht gelöscht und auch erst einmal nur eine Test.xls erstellt. Mein bisschen Schnipsel da oben zeigt erst einmal nur den Weg des möglichen. Deswegen, noch jede Menge Finetuning. Und da Andre es ja ganz alleine später betreiben möchte, können wir's gern massgeschneitert schreiben face-wink

Aber warten wir erst einmal seine Meinungen dazu ab.

Vielen Dank und viele Grüße

Tsuki
Mitglied: Skyemugen
Skyemugen 04.06.2012 aktualisiert um 08:24:28 Uhr
Goto Top
Aloha ihr beiden und Danke für eure Anteilnahme der Thematik face-wink

nach einem ziemlich PC-armen Wochenende, stehe ich jetzt erst einmal vor euren Kommentaren, hehe.

Werde es im Laufe des Tages durchtesten, derzeit habe ich wichtige Konstruktionen auf dem Tisch immer wieder Montags ...

Auf bastlas wobei einzugehen: Da ich anfangs kein Komplettpaket à la VBS dachte, sondern an eine Aufarbeitung, hätte ursprünglich diese Aufarbeitung um 23:50 als 2. Task stattgefunden (daher verstand ich auch nie, was Mario mit wegfallen von Daten etc. meinte).

Aber wie gesagt: Das Gerüst dort oben werde ich heute mal testen und mein Feedback geben.

Bis dahin ... hoffen wir mal, dass der Montag auf Arbeit weniger wolkig als das Wetter wird face-wink

greetz André
Mitglied: 76109
76109 04.06.2012, aktualisiert am 05.06.2012 um 00:31:11 Uhr
Goto Top
Hallo @all!

@andré
Und wenn Du schon beim testen bist, dann hier noch eine Variante, die automatisiert den Ping absetzt und das Ergebnis direkt in die Excel-Tabelle einträgt.

Ablauf:
Ping absetzen
Cmd-Ausgabe einlesen und auswerten
Gegebenenfalls Ordner Jahr erstellen
Gegebenenfalls Ordner Monat erstellen
Gegebenenfalls ein Sheet pro Tag hinzufügen

Dieses Skript erstellt pro Monat eine neue Excelmappe mit einem Schreib-Passwort, d.h. die Excelmappe erhält einen Schreibschutz und kann auch während einer Taskausführung schreibgeschützt zur Ansicht geöffnet werden.

Was allerdings noch fehlt, ist der einmalige Datenimport der vorangegangenen Monate und Tage in einer Ruhephaseface-wink


Gruß Dieter

[edit] Code insoweit geändert, dass beim Erstellen einer neuen Arbeitsmappe nur 1 Sheet vorhanden ist. [/edit]
Mitglied: Skyemugen
Skyemugen 04.06.2012 um 09:34:48 Uhr
Goto Top
Aloha erneut, ob den Edit einer liest, Doppelpost komm in meine Arme *fg*

sooo ... mit TsukiSans Ausfühung habe ich momentan eine .xls (Excel meckert rum:
Sie versuchen eine Datei zu öffnen 'Test.xls' deren Format von der in den Dateierweiterung abweicht ... bla bla bla nicht beschädig bla bla usw.) die wie folgt aufgebaut ist:

2012-06-04Tabelle 52012-06-01Tabelle 62012-06-02Tabelle 72012-06-03
mit den richtigen Inhalten bisher in den Datums-Tabellenblättern.

Für den letzten Monat, mit 31 Dateien sah es dann so aus:
Tabelle 322824- bis -0804Tabelle 332925- bis -0501312622 - bis - 0602Tabelle 312723- bis -0703

bastlas Vorschlag endete mit einem Typen unverträglich 'Cells'

greetz André

P.S.: Frühstück
Mitglied: bastla
bastla 04.06.2012 um 10:46:47 Uhr
Goto Top
Hallo Skye!

Da ja über VBS gestartet wird (ich aber gleich direkt in Excel getestet habe), fehlt (das für alle Excel-Objekte benötigte) "ObjXls." vorweg (ließe sich auch mit einem "With" pauschal erledigen) - ich ergänze das mal oben ...

Grüße
bastla
Mitglied: Skyemugen
Skyemugen 04.06.2012 aktualisiert um 12:15:44 Uhr
Goto Top
Aloha Dieter,

na, das sieht doch schon einmal klasse aus, das Einzige hierbei ist, jede neue Standard-Datei enthält ja drei Tabellen, sodass er zwar den ersten Eintrag in Tabelle 1 setzt, allerdings wenn ich das Datum für morgen einstelle, um einen fortlaufenden Test zu haben, dann kommt diese ans Ende
4Tabelle 2Tabelle 35

Auch bei dieser erstellten .xls kommt die Ansage Sie versuchen eine Datei zu öffnen 'Ping.xls' deren Format von der in den Dateierweiterung abweicht ... bla bla bla nicht beschädig bla bla usw.) Excel ist wohl empfindlich von nicht selbst erstellten Dateien face-wink

Sonst funktioniert es bisher prima.

@bastla, ja funktioniert jetzt face-wink

greetz André
Mitglied: 76109
76109 04.06.2012 um 12:41:46 Uhr
Goto Top
Hallo André!

Sorry, von einer bereits erstellten Standard-Datei bin ich nicht ausgegangen. Mein Plan war, für jeden Monat eine Neue Arbeitsmappe automatisiert zu erstellen und für jeden Tag (Tabellennamen 1 ,2 ,3 ... 31) ein neues Sheet zu erstellen...

Leider habe ich jetzt auch keine Zeit, da ich gleich zur Arbeit muss und erst sehr spät (hundemüde) nach Hause komme, aber vielleicht kann sich ja bastla ein wenig damit beschäftigen?face-wink

Gruß Dieter
Mitglied: Skyemugen
Skyemugen 04.06.2012 um 13:42:20 Uhr
Goto Top
Zitat von @76109:
Sorry, von einer bereits erstellten Standard-Datei bin ich nicht ausgegangen

Ist auch nicht die Rede. Es wird eine neue erstellt, diese enthält standardmäßig dennoch die ausgefüllte Tabelle des ersten Tages sowie Tabelle 2 und Tabelle 3 face-wink

greetz André
Mitglied: TsukiSan
TsukiSan 04.06.2012 um 14:01:10 Uhr
Goto Top
sowie Tabelle 2 und Tabelle 3
Hallo Andre,

nur ganz kurz: Die lassen sich noch rauslöschen, diese Standarttabellen.
Zu den Meldungen, die du da immer bekommst, dass könnte wohl damit zusammenhängen, dass die Exceldateien ab 2007 auf .xlsx enden. Das kann ich aber nicht testen und sollte aber auch nicht stören face-wink

@Dieter,

ich glaube wir haben denselben Job nur mit dem Unterschied, dass ich das Haus morgens schon hundemüde verlasse face-wink

Bis später und Gruss

Tsuki
Mitglied: 76109
76109 05.06.2012 aktualisiert um 00:46:35 Uhr
Goto Top
Hallo André!

Heute Mittag stand ich wegen Zeitmangel wohl etwas auf dem Schlauch und ist mir erst auf der Fahrt zur Arbeit eingefallen, was Du eigentlich gemeint hast. Bei mir ist diese Option seit ewigen Zeiten auf 1 Sheet in Neuer Arbeitsmappe eingestellt, von daher habe ich nicht mehr daran gedacht, dass diese Option standardmäßig auf 3 gesetzt ist.

Habe im obigen Skript eine entsprechende Änderung vorgenommen. D.h. aktuelle Einstellung sichern, auf 1 Sheet einstellen und nach dem Erstellen der neuen Arbeitsmappe wieder auf die vorherige Einstellung zurücksetzen.

Was den Formatierungsfehler angeht, habe ich leider keinen blassen Schimmer, woran das liegen könnte. Meine Excel-Version ist schon ein bisschen älter, aber Tsukis Vorschlag (*.xlsx-Format) könntest Du ja mal testen, also 'Const ExcelMappe = Ping.xls' entsprechend anpassen?


@tsuki
ich glaube wir haben denselben Job nur mit dem Unterschied,
dass ich das Haus morgens schon hundemüde verlasse
Hundemüde zur Arbeit, ist bei mir erst nächste Woche wieder dran, wenn mich mein Wecker gegen 03:45 Uhr aus meinem heißgeliebten Tiefschlaf holtface-wink

Gruß und gute Nacht

Dieter
Mitglied: Skyemugen
Skyemugen 05.06.2012 aktualisiert um 09:10:42 Uhr
Goto Top
Aloha Dieter,

in der Tat klappt es mit .xlsx ohne Fehlermeldung, allerdings bin ich erst einmal reingefallen face-wink da Ping.xlsx noch nicht existiert hat, aber der Ordner 06 bereits existiert, wurde nach deinem Code keine neue Datei angelegt (das würde ja nur geschehen, wenn der Monats-Ordner noch nicht existiert) und ich bekam logischerweise eine Fehlermeldung.

Naja, Ordner umbenannt und getestet face-wink Sieht bisher gut aus, auch bei einem neuen Tag.

Mal schauen, ob TsukiSan noch Lust und Geduld hat, seinen Code zu optimieren [Danke für die Arbeit bisher], dann könnte ich die alten Dateien ebenso verarbeiten. ^__^

Auf jeden Fall Danke, Dieter, auch für das umfangreiche Kommentieren der Codezeilen.

greetz André
Mitglied: TsukiSan
TsukiSan 05.06.2012 um 10:36:12 Uhr
Goto Top
Hallo Andre,

mir persönlich gefällt Dieter seine Variante am besten!

Ich mache meine "Baustelle" soweit fertig, dass du deine anderen Daten noch exportiert bekommst nach Excel.
heisst:
1) Exceldateiname einen Monatsnamen geben, aufgrund des Datums der Dateien
(sind deine Dateien für jeden Monat in einem separaten Ordner?)
2) unnötige Tabellen nachher rauslöschen
3) die Tabellenblätter sortieren
4) alte CSV-Dateien löschen

ich weiss nur nicht, ob ich heute noch dazu komme. Aber ich mache dir das!

Falls ich einen Punkt vergessen habe, bitte melde dich face-wink

Viele Grüße

Tsuki
Mitglied: Skyemugen
Skyemugen 05.06.2012 um 10:53:19 Uhr
Goto Top
Zitat von @TsukiSan:
(sind deine Dateien für jeden Monat in einem separaten Ordner?)
Um das mal mit einer oben angegebenen Batchzeile zu beantworten:
face-wink
Die bisherigen Dateien liegen im jeweiligen Monats-Ordner.

Gut, mit einer Monatsdatei ist das eigentlich Überfluss geworden ...

So, mit diesem Gedankengang habe ich schnell mal das Skript von Dieter angepasst, sodass jetzt im Jahresordner eine Monats-Exceldatei entsteht, sprich z.B. D:\Latenz\2012\06_Ping.xlsx

greetz André
Mitglied: 76109
76109 05.06.2012 um 11:46:06 Uhr
Goto Top
Hallo André, Hallo Tsuki!

Toll, da tut sich wasface-wink

Und von mir bekommst Du bei Gelegenheit noch eine Win-Ping-Variante mit Statistik-Auswertung, also ohne das lästige Dos-Fensterface-wink

Gruß Dieter
Mitglied: bastla
bastla 05.06.2012 aktualisiert um 12:51:21 Uhr
Goto Top
@Dieter
ohne das lästige Dos-Fensterface-wink
Damit ich auch noch etwas beitrage: http://blogs.technet.com/b/heyscriptingguy/archive/2004/09/14/why-doesn ...

Grüße
bastla
Mitglied: Skyemugen
Skyemugen 05.06.2012 um 15:56:43 Uhr
Goto Top
Aloha Dieter,

hm wie es manchmal so kommt ... ich sitze natürlich lustig an einer XP-Kiste und teste ...

Tja und wie man dann so am Server ist, merkt man, dass gar kein Office dort logischerweise installiert ist *pfeif* - gut, denke ich: Lässte es auf dem 2000er TS laufen, tja läuft auch aber alle Werte sind immer n/v (wenn ich manuell im cmd pinge, bekomme ich die ganz normale Ausgabe).

Ist es möglich, dass etwas im Code unter dem 2000er Server gar nicht lauffähig ist? Wenn ja, muss ich wohl doch extra Office-Paket auf unseren 2003 R2 installieren *hrmpf*.

greetz André
Mitglied: TsukiSan
TsukiSan 05.06.2012 aktualisiert um 16:42:50 Uhr
Goto Top
Hallo Andre,

ich sehe, du kämpfst gerade mit anderen Sachen face-wink

Ich habe gute als auch interessante Nachrichten für dich.
die Guten zuerst:
Um deine schon erstellten CVS-Dateien nach Excel zu exportieren, habe ich meine "Baustelle" von oben etwas erweitert und auch kommentiert.
Allerdings sind mir 2 Sachen aufgefallen, die ich momentan noch nicht erklären kann. Eventuell helfen uns bastla und Dieter dabei, auf eine Lösung zu kommen. Interessiert mich jetzt auch!
1) Das "Moven" der Tabellen funktioniert mit dem Befehl:
Sheets("Tabelle3").Move Before:=Sheets(1)
unter VBS nicht, aber unter VB6 z.Bsp.
2) Tabellen werden zwar mit IsNumeric erkannt, aber mit
Sheets("Tabelle3").Select
ActiveWindow.SelectedSheets.Delete
z.Bsp.: nicht gelöscht. Sind weiter da und es gibt keinerlei Meldungen.

Hier der aktuelle Script. Bitte mal drüberschauen und die Fehler finden:

So long,

Tsuki

Ps.: wir kriegen das hier schon geschaukelt face-wink
Mitglied: TsukiSan
TsukiSan 05.06.2012 aktualisiert um 16:47:30 Uhr
Goto Top
@andre,

was sehr hilfreich ist, ist das Notpad++
Da wird es übersichtlicher, wenn man die .VBS-Datei damit öffnet

Gruss
Tsuki

[Frau-Mit-Nur-Einer-Brust]
Wenn du möchtest, kompiliere ich dir die VB6-Version als asuzuführende exe-Datei. Damit kannst du zumindest erst einmal deine alten Dateien einlesen.
Das Löschen der bereits eingelesenen Dateien kommt noch. Dieses Feature hebe ich mir auf bis zum Schluss, bis ales andere funktioniert.
Weil gelöscht ist schnell face-wink
[/Frau-Mit-Nur-Einer-Brust]

Ps.: Frau-Mit-Nur-Einer-Brust = EDIT face-wink
Mitglied: bastla
bastla 05.06.2012 aktualisiert um 17:04:12 Uhr
Goto Top
Hallo Tsuki!

Versuche es mal so
bzw so
Das jeweilige "Select" davor sollte übrigens nicht nötig sein ...
[Edit] steht jetzt unten [/Edit]

Grüße
bastla
Mitglied: TsukiSan
TsukiSan 05.06.2012 aktualisiert um 17:07:29 Uhr
Goto Top
@bastla,

auf dich ist Verlass face-smile
Funktioniert, mit einer ganz kleinen Anpassung
ObjXls.Sheets(temp(0)).Move ,ObjXls.ActiveWorkbook.Sheets(1)
und
ObjXls.Sheets(temp(i)).Move ,ObjXls.ActiveWorkbook.Sheets(i + 1)
und das -Select benötigt man tatsächlich nicht.

Wie du das immer machst face-smile

Wie bekommen wir die überflüssigen Tabellen gelöscht?
Zeilen 78 und 79 tangieren dieses Programm peripher face-wink

Danke und viele Grüße

Tsuki

hier nochmal als VBS:

Gruss
Tsuki

[Edit]
allerbesten Dank an bastla!
ich habe es angepasst und noch etwas abgeändert. Jetzt tut er's, also sortieren und überflüssige Tabellen löschen. Es nervt zwar etwas, dass man da noch 3 oder 4 Mal OK drücken muss, aber ich denke, dass ist für Andre im Moment akzeptabel face-wink

Das löschen der CSV-Dateien erst, wenn soweit der Export funktioniert, wie ihn Andre haben möchte.
/Edit]
Mitglied: bastla
bastla 05.06.2012 aktualisiert um 17:11:02 Uhr
Goto Top
Hallo Tsuki!

Das Tabellen-Löschen würde ich nicht unbedingt während des Sortierens machen - daher nachträglich etwa so:
Noch ein Hinweis: Mit
- also ohne Angabe des Dateityps - wird automatisch im Standard-Excel-Format (.xls oder .xlsx) gespeichert ...

Grüße
bastla
Mitglied: TsukiSan
TsukiSan 05.06.2012 um 17:11:36 Uhr
Goto Top
@bastla,

ich weiss, aber er macht's in einem Rutsch gleich mit und jetzt funktioniert es. Habe es getestet und oben korrigiert.
Schau doch bitte nochmal drüber.

Allerbesten Dank an dich!!!!!!

Gruss
Tsuki
Mitglied: TsukiSan
TsukiSan 05.06.2012 aktualisiert um 17:23:44 Uhr
Goto Top
@ bastla,

was ich noch erwähnen wollte - und warum ich in Zeile 74
tempName = tempName * 1
gesetzt habe ist folgender Grund:
Der Compiler interpretiert
alles als Strings, da die Dinger mit "" eingelesen werden.
Mit meiner Variante lese ich den ersten linken String aus und multipliziere ihn mit 1. Wenn es kein Buchstabe ist, dann wird da eine Ziffer draus, also numerisch face-wink

Aber das ist sicher nichts Neues für dich.

Soweit macht Andres Frage riesen Spass face-smile

Gruss
Tsuki
Mitglied: bastla
bastla 05.06.2012 aktualisiert um 18:13:44 Uhr
Goto Top
Hallo Tsuki!
tempName = tempName * 1
ist aber nicht nötig, weil ja "IsNumeric()" dafür gedacht ist, Strings zu prüfen ...

Mein Ansatz war etwas verkürzt (es soll ja nur das erste Zeichen des Namens geprüft werden), daher:
BTW: Ich sehe in Deinem Code keinen Sortier-Algorithmus - soferne also nicht die Dateien in der richtigen Reihenfolge erstellt (was bei den Originaldateien aber eigentlich der Fall sein müsste) und daher ohnehin so eingelesen wurden, wird die Reihenfolge der Tabellenblätter nicht stimmen ...

Grüße
bastla
Mitglied: TsukiSan
TsukiSan 05.06.2012 aktualisiert um 17:57:05 Uhr
Goto Top
Hallo bastla,

das IsNumeric behandelt ohne diese Zeile 74 alles als einen String bei mir und somit nicht als numerisch. Nur dieser kleine Trick half mir dabei.
WinXp Eng SP3 und Office 2000 Prof, bzw. Office 2003 SP1.
Warum er das macht, weiss ich nicht. In VB6 getestet liest er es auch als String ein und es kümmert "ihn" nicht, ob 2 eine Ziffer oder T ein Buchstabe ist. Ist für "ihn" hier alles gleich, nämlich nichtnumerisch. Naja, man kann das aber so abfangen face-wink Mit dem Multiplizieren schiesst man endgültig irgendwleche Gänsefüsschen ab face-wink

Einen Sortieralgorithmus gibt es in meinem Code nicht. Das ist richtig. Bisher werden die Dateien in der Reihenfolge eingelesen, wie es ### zur Verfügung stellt. Wenn da die Reihenfolge nicht mehr stimmt, weil eventuell nach Datum oder sonst etwas sortiert wird, dann müssten wir dem ganzen noch einen Bubblesort spendieren. Ich glaube, dass müssen wir aber gar nicht.
Mit dem bisherigen Code und dem Sortieren in den Zeilen 70 bis 81 funktioniert es bei mir prächtig. Ich kann nur kein Office 2007 testen, weil "No Have" face-wink

Es ist immer wieder schön, was man hier alles dazulernt. Danke bastla, danke Dieter!

Mal sehen, was bei Andre rauskommt.

Gruss
Tsuki

[Edit]
### hat die wunderschöne Seite wieder zensiert face-wink Ich wollte ja Whinntoofff nicht schreiben face-wink
[/Edit]
Mitglied: TsukiSan
TsukiSan 05.06.2012 um 18:00:56 Uhr
Goto Top
Hallo Andre,

ich weiss nicht, wie ich morgen Zeit habe. Hier der code,
der folgendes macht:
1) Ordner auswählen
2) Alle dort befindlichen CVS-Dateien einlesen
3) alles was relevant ist nach Excel exportieren (ab 2007 ungetestet!)
4) Überflüssige Tabellen löschen (muss man ggf. mit OK bestätigen)
5) Dann alles soweit sortieren im neuen Excelblatt
6) alle CSV-Dateien gnadenlos löschen( hier bitte Obacht!)

Gruss
Tsuki
Mitglied: 76109
76109 06.06.2012 aktualisiert um 09:55:32 Uhr
Goto Top
Hallo Sky!

Test mal mit diesem Skript, ob Du eine Ping-Antwort erhälst:
wobei eine MsgBox zu testzwecken eine entsprechende Meldung ausgibt

@all
Ihr wart in der Zwischenzeit ja ganz schön fleißigface-wink

Gruß Dieter
Mitglied: Skyemugen
Skyemugen 06.06.2012 um 10:12:58 Uhr
Goto Top
Aloha ihr drei,

@tsuki ich nutze Proton das genügt mir.

Ihr könnt euch Zeit lassen, zum Basteln, ich bin erst einmal krank geschrieben - Verdacht auf Blinddarmentzündung, daher komme ich sowieso nicht zum Testen unter Realbedingungen ...

greetz André

P.S.:@Dieter, mein Nickname hat nichts mit dem Himmel zu tun face-wink
Mitglied: TsukiSan
TsukiSan 06.06.2012 um 11:06:00 Uhr
Goto Top
Hallo Andre,

na erst einmal gute Besserung!

Proton geht natürlich auch. Wenn man's nur mit dem Notepad aufmacht, sieht's nicht so schön aus.

@Dieter,

danke, danke! Wir waren alle fleissig face-smile Nur das Ergebnis zählt.

Gruss und gute Besserung,

Tsuki
Mitglied: 76109
76109 06.06.2012 um 12:38:02 Uhr
Goto Top
Hallo André!

Auch von mir gute Besserung!

Blindarmentzündung, tut das weh?face-wink

P.S.:@Dieter, mein Nickname hat nichts mit dem Himmel zu tun
Aber, Du hast doch Flügelface-wink

@tsuki
danke, danke! Wir waren alle fleissig Nur das Ergebnis zählt.
Jepp, da gebe ich Dir vollkommen Rechtface-wink

Gruß Dieter
Mitglied: bastla
bastla 06.06.2012 um 18:02:40 Uhr
Goto Top
Hallo Skye!

Auf dass sich der Verdacht nicht bestätigen möge ... face-smile

Grüße
bastla
Mitglied: 76109
76109 07.06.2012 aktualisiert um 23:12:52 Uhr
Goto Top
Hallo André!

Hier - wie versprochen - die Win-Ping-Version:
wobei, Deine Anpassung (alle Mappen im Jahres-Ordner) ebenfalls berücksichtigt wurde

Gruß Dieter


PS.
Falls Dir die Ping-Folge zu schnell sein sollte, dann kannst Du in der Ping-Schleife noch diese Codezeile einfügen

Und falls sich jemand wundert, warum die Antiviren-Software trotz akueller Updates mit der Meldung 'Datenbanken und Programm-Module veraltet' nervt, dann liegt das daran, dass Ihr - wie ich - vergessen habt, nach dem Testen das Datum wieder richtig einzustellenface-smile
Mitglied: Skyemugen
Skyemugen 09.06.2012 um 08:19:07 Uhr
Goto Top
Zitat von @bastla:
Auf dass sich der Verdacht nicht bestätigen möge ... face-smile

Aloha bastla,

glücklicherweise scheint es, als habe sich der Verdacht nicht bestätigt, dennoch ist die Ursache unklar und die Symptome nicht weg ... also noch eine Weile krankgeschrieben => das Testen der Lösungen zieht sich also noch ;)

Gruß an alle und Danke für die Genesungswünsche,

André
Mitglied: Skyemugen
Skyemugen 19.06.2012 um 14:19:38 Uhr
Goto Top
Aloha zusammen,

*sigh* der Tisch ist voll, so voll ... ich hoffe, ich komme noch diese Woche dazu, das Thema hier abzuschließen, momentan hab' ich nicht einmal die Luft, mich hier überhaupt groß anzumelden am Tag ^__^

und ich hoffe, die Infektion bekommt keinen erneuten Rückfall ...

greetz André
Mitglied: Skyemugen
Skyemugen 21.06.2012 um 18:44:25 Uhr
Goto Top
Multiposts ftw, ich hasse das Jahr 2012 - bin wieder krank geschrieben ... und versucht mal einer in der Urlaubszeit kurzfristig einen Termin for Sono zu kriegen, haha ~.~
Mitglied: Skyemugen
Skyemugen 02.07.2012 um 11:13:19 Uhr
Goto Top
Soooo also, nu gehen wir doch mal ran an den Speck:

Dieters letzte Ausführung bringt auf dem TS2000 leider folgendes:

Er mag also das For Each nicht(?)

greetz André
Mitglied: 76109
76109 02.07.2012 um 11:57:35 Uhr
Goto Top
Hallo André!

Teste mal mit diesem Skript, ob Du eine entsprechende Fehlermeldung bekommst:

Gruß Dieter
Mitglied: Skyemugen
Skyemugen 02.07.2012 um 12:13:06 Uhr
Goto Top
Aloha Dieter,

Antworten = 10, Verloren = 0 face-wink

greetz André
Mitglied: 76109
76109 02.07.2012 um 13:27:13 Uhr
Goto Top
Hallo André!

Muss gestehen, dass ich dieses Ergebnis eigentlich nicht erwartet habeface-wink, zumal ich zum anderen Skript keinen Unterschied feststellen kann.

Und was passiert, wenn Du mal die Codezeile 'On Error Resume Next' mit einem Kommentarzeichen (') auskommentierst?

Gruß Dieter
Mitglied: Skyemugen
Skyemugen 02.07.2012 um 13:41:29 Uhr
Goto Top
Zitat von @76109:
Und was passiert, wenn Du mal die Codezeile 'On Error Resume Next' mit einem Kommentarzeichen (') auskommentierst?

Macht null Komma gar keinen Unterschied face-wink
Mitglied: 76109
76109 02.07.2012 um 13:45:39 Uhr
Goto Top
Hallo nochmal!

Also, ich habe diesen Code (didi1954 schreibt am 07.06.2012 um 10:34:41 Uhr) nochmal bei mir getestet und der funktioniert einwandfrei?face-sad

Gruß Dieter
Mitglied: Skyemugen
Skyemugen 02.07.2012 um 13:59:13 Uhr
Goto Top
... hm, dann hat unser TS doch einen weg, die Vermutung hatte ich eh schon länger ...
Mitglied: 76109
76109 02.07.2012 aktualisiert um 14:14:55 Uhr
Goto Top
Hallo André!

... hm, dann hat unser TS doch einen weg, die Vermutung hatte ich eh schon länger ...
Das kann ich leider nicht beurteilenface-wink

Du könntest den ganzen Code-Block auch einfach mal austauschen, eventuell hat sich da irgendetwas eingeschlichen, was da nicht hingehört? Das hatte ich auch schonmalface-wink

Gruß Dieter

PS. Gegebenenfalls auch mal woanders (Zuhause?) testen...