Forums Neueste Beiträge
 

Excel 2007 VBA: Datum trennen

26/05/2009 - 23:35 von stefan schneider | Report spam
Hallo,

ich habe eine Datei, deren Dateiname immer nach folgendem Muster
aufgebaut ist:
JJJJ-MM-TT Test.xls, also z.B. heute 2009-05-26 Test.xls, morgen
2009-05-27 Test.xls.

Diese Datei hat immer nur ein Sheet, es heißt genauso wie die Datei,
also 2009-05-26 Test, usw.

Ich möchte nun aus einer anderen xlsm Datei (Beispiel.xlsm) die
2009-05-26 Test.xls (oder wie auch immer sie an dem Tag heißt) öffnen,
und Sheet 2009-05-26 Test in Beispiel.xlsm kopieren.

Kann mir jemand helfen wie ich den variablen Teil des Dateinamens, also
das Datum einbaue?

Hier mal mein Ansatz des Codes, geht sicher auch besser:)

Sub Makro1()

Workbooks("2009-05-26 Test.xls").Sheets("2009-05-26 Test").Select
Workbooks("2009-05-26 Test.xls").Sheets("2009-05-26 Test").Copy
Before:=Workbooks("Beispiel.xlsm").Sheets(3)

Workbooks("Beispiel.xlsm").Sheets("2009-05-26 Test").Name = "Test"
Workbooks("2009-05-26 Test.xls").Close SaveChanges:=False


End Sub
 

Lesen sie die antworten

#1 Andreas Killer
27/05/2009 - 09:16 | Warnen spam
On 26 Mai, 23:35, stefan schneider wrote:

ich habe eine Datei, deren Dateiname immer nach folgendem Muster
aufgebaut ist:
JJJJ-MM-TT Test.xls, also z.B. heute 2009-05-26 Test.xls, morgen
2009-05-27 Test.xls.

Diese Datei hat immer nur ein Sheet, es heißt genauso wie die Datei,
also 2009-05-26 Test, usw.

Ich möchte nun aus einer anderen xlsm Datei (Beispiel.xlsm) die
2009-05-26 Test.xls (oder wie auch immer sie an dem Tag heißt) öffnen,
und Sheet 2009-05-26 Test in Beispiel.xlsm kopieren.

Kann mir jemand helfen wie ich den variablen Teil des Dateinamens, also
das Datum einbaue?


Klar, aber was schwebt Dir denn vor? Es gàbe da div. Möglichkeiten:

Ein richtiges Datum wird abgefragt, das Makro wandelt es in den
Dateinamen um, öffnet ggf. die Datei, kopiert das Sheet und schließt
die Datei ggf. wieder?
Oder soll das Datum in einer Zelle stehen?
Oder sollen einfach alle geöffneten Dateien auf "Datum im Namen"
geprüft werden und von diesen die Sheets kopiert werden?
Und was ist wenn es bereits ein Sheet für dieses Datum gibt?

Mal als Ansatz wie man das Datum einbauen könnte:

D = CDate("26.05.09")
S = Format(D, "YYYY-MM-DD") & " Test"
Workbooks(S & ".xls").Sheets(S).Copy After:=ActiveSheet

Andreas.

Ähnliche fragen