Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
672to676
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
672to676
672to676
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

einzelne Dateien wochen- bzw. monatsweise addieren

einzelne Dateien wochen- bzw. monatsweise addieren
28.09.2005 12:00:29
bjoern
Hallo @all,
ich hoffe, dass mir einer hier helfen kann. Mein VBA liegt zwischen gut und nein!
Ich mache täglich zwei Auswertungen. Diese werden mit dem Dateinamen auswertung_tt.mm.jjjj_hh_mm.xls abgespeichert. tt=Tag; mm=Monat; jjjj=Jahr; hh=Stunden; mm=Minuten werden vom System automatisch generiert (Zeitpunkt der Ausführung - sind 18:00 und 20:00 Uhr und halt das entsprechende Datum: z.B.: 25.07.2005).
Ich möchte jetzt, dass die einzelnen Tagesauswertungen zu einer Wochenauswertung zusammengeführt werden. Und um es noch komplizierter zu machen, wäre es optimal, dass die Wochenauswertungen "monatsrein" wären = wenn der erste des Monats z. B. ein Mittwoch ist, muss die erste Wochenauswertung bis Dienstag (letzter Tag des voherigen Monats) gehen und die zweite Auswertung ab Mittwoch (erster Tag des aktuellen Monats) einsetzen. Die restlichen Wochen wären dann ja von Montag bis Freitag.
Erste Frage daher: Wie kann ich ein Makro schreiben, dass mir die Dateien für die einzelenen Wochentage (in Abhängigkeit, ob ein Monatswechsel vorliegt) öffnet, so dass ich dann entsprechend die Daten zusammenfassen kann?
Nachdem ich die einzelnen Wochen habe, möchte ich dann noch eine Monatsauswertung machen. Hier ist also das gleiche Problem:
Wie bekomme ich Excel dazu, dass es mir nacheinander alle Dateien (die in der vorherigen Auswertung generiert wurden - Dateinamen wäre dann in Abhängigkeit von der obigen Auswertung zu entwickeln) vom August öffnet, damit ich die Daten entsprechend bearbeiten kann?
Würde mich freuen, wenn es eine oder mehrere Lösungen bzw. Denkansätze gibt, damit ich meine Tagesdateien einfach in Wochen- und Monatsauswertungen zusammenführen kann.
Ich bedanke mich bereits jetzt für jede Hilfestellung und wünsche uns allen einen ertragsreichen Tag!
Grüße
Björn

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: einzelne Dateien wochen- bzw. monatsweise addieren
28.09.2005 13:16:09
Uduuh
Hallo,
das einfachere ist mit Sicherheit die Monatsauswertung, da der Monat eindeutig ist.
Du kannst deinen Ordner mit dem FileSearch-Objekt durchsuchen, alle Dateien öffnen und dir die Daten in ein neues Sheet kopieren.
Schema etwa:
set FS =Application.filesearch
with FS
.LookIn="c:\Test"
.FileName="*09_2005*.xls"
if .execute&gt0 then
for i=1 to .foundfiles.count
set wkb=Workbooks.open .foundfiles(i)
'Kopieraktion
wkb.close false
next i
end if
end with
Gruß aus’m Pott
Udo

AW: einzelne Dateien wochen- bzw. monatsweise addieren
28.09.2005 14:20:45
bjoern
Danke für die Antwort. Werde das ganze mal umsetzen.
Grüße
Björn
Anzeige
AW: einzelne Dateien wochen- bzw. monatsweise addieren
28.09.2005 15:30:41
bjoern
Hallo Udo,
habe Deinen Code umgesetzt und er funktioniert so weit auch prima. Es gibt lediglich das Problem, dass ich nach der Kopieraktion nicht die durch das Makro geöffnete Datei schließen kann, bevor eine weitere Datei geöffnet werden soll.
Deine Methode mit "wkb.close false" funktioniert leider nicht.
Das Problem ist, dass ich zwischen der Datei, die geöffnet wird und aus der Daten übernommen werden sollen, und der Datei, in der die Daten ergänzt werden müssen, natürlich wechseln muss. Ich habe bis jetzt keine Lösung gefunden, wie ich zur geöffneten Datei zurückwechseln kann. Setze ich wkb = .FoundFiles(i) wird der komplette Dateipfad übernommen - und nicht nur der Dateiname.
Es würde mir sehr helfen, wenn ich eine Lösung finden würde, damit ich die Dateien nicht manuell schließen muss.
Schon vorab: VIELEN DANK @ ALL
Grüße
Björn
Anzeige
AW: einzelne Dateien wochen- bzw. monatsweise addi
28.09.2005 22:55:37
Uduuh
Hallo,
du must wkb als Workbook deklarieren!
Dim wkb as Workbook
und dann wirklich
Set wkb=workbooks.open(.foundfiles(i))
und nicht
wkb=.foundfiles(i)
Dann sollte es auch mit
wkb.close false
klappen.
Ansonsten: poste mal den relevanten Codeausschnitt
Gruß aus’m Pott
Udo

AW: einzelne Dateien wochen- bzw. monatsweise addieren
29.09.2005 10:59:51
bjoern
Hallo Udo,
das mit dem Schließen der Datei funktioniert jetzt bestens. Vielen DANK!
Habe jetzt nur noch ein kleines Problem.
Nachdem ich einen Bereich kopiert und in die andere Datei eingefügt habe, muss ich aus der geöffneten Datei einen weiteren Bereich kopieren.
Mit
Windows("" + wkb + "").Activate
komme ich aber leider nicht zum Fenster zurück.
Dazu habe ich folgende Einträge - nach Deinem Code - gemacht:
Dim wkb As Workbook
Set wkb = Workbooks.Open(.FoundFiles(i))
Ist wahrscheinlich wirklich nur eine Kleinigkeit - und vielleicht finde ich selbst noch die Lösung.
Falls ich diese gefunden habe, melde ich wieder - ansonsten freue ich mich natürlich um einen weiteren Ratschlag.
Nochmals: VIELEN DANK!!!
Grüße
Björn
Anzeige
AW: einzelne Dateien wochen- bzw. monatsweise addieren
29.09.2005 11:12:24
Björn
Hallo Udo,
mit
wkb.Activate
kann ich problemlos wechseln.
Vielen DANK.
Grüße
Björn
@ALL: Wenn jemand noch eine Idee hat, wie ich eine solchen Auswertung wochenweise bzw. für frei wählbare Zeiträume (siehe meine andere Anfrage) machen kann, bin ich natürlich sehr dankbar für den Ratschlag. Auf alle Fälle bedanke ich mich bei Udo für die Umsetzung der Monatsauswertung.
AW: einzelne Dateien wochen- bzw. monatsweise addi
29.09.2005 21:31:01
Uduuh
Hallo,
mit dieser

Function findest du den Montag einer KW heraus. Vielleicht kannst du das ja gebrauchen.

Function MoInKW(KW As Integer, Jahr As Integer) As Date
MoInKW = DateSerial(Jahr, 1, 7 * KW - 3 - Weekday(DateSerial(Jahr, 0, 0), 3))
End Function

Zum Wechseln zwischen deinen Workbooks: das ist vollkommen unnötig. Du kannst alle Workbooks und Sheets direkt ansprechen.
wkb.sheets(1).cells(1,1).copy thisworkbook.sheets(1).cells(1,1)
kopiert A1 aus Blatt1 in wkb nach A1, Blatt1 des Workbooks in dem der Befehl steht. Nix mit Select und Activate.
Gruß aus’m Pott
Udo

Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige