Registriert seit: 10.04.2014
Version(en): 2016 + 365
16.12.2015, 16:44
(Dieser Beitrag wurde zuletzt bearbeitet: 17.12.2015, 00:32 von Rabe.)
Hi, (16.12.2015, 14:28)snb schrieb: Man braucht nur Zelle A1: Nicht ganz: wenn ich es mit Deinem Makro mache, werden nur die beiden Datein vom 1.1. und vom 31.12. erstellt und nicht auch alle dazwischen, wie beim anderen Code.
Registriert seit: 12.04.2014
Version(en): 2007 / 2010
Hallo Ralf,
Stimmt, Du warst nur schneller, mein Internet spinnt heute.
Weißt du was bei "If Dir(c00, 16) = "" Then MkDir c00" die 16 bedeutet, von 16 bis 23 funktioniert es auch (von 1 bis 15 funktioniert es nicht).
Gruß Willy
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
(16.12.2015, 17:21)WiK schrieb: Weißt du was bei "If Dir(c00, 16) = "" Then MkDir c00" die 16 bedeutet, von 16 bis 23 funktioniert es auch (von 1 bis 15 funktioniert es nicht). Hallo Willy,
Gruß Uwe
Registriert seit: 12.04.2014
Version(en): 2007 / 2010
Danke Uwe,
habe sogar die Bibliothek gefunden.
Gruß Willy
Registriert seit: 29.09.2015
Version(en): 2030,5
Code: Sub M_snb() y=[A1] c00 = "D:\Berichte\Bericht " & Right(y, 2) If Dir(c00, 16) = "" Then MkDir c00
For j = DateSerial(y, 1, 1) To DateSerial(y, 12, 31) ActiveWorkbook.SaveAs c00 & "\" & Format(j, "yyyymmdd") & ".xlsx", 51 Next ActiveWorkbook.Close 0 End Sub
Registriert seit: 10.04.2014
Version(en): 2016 + 365
17.12.2015, 00:34
(Dieser Beitrag wurde zuletzt bearbeitet: 17.12.2015, 00:34 von Rabe.)
Ist das nicht dasselbe wie: Code: Sub M_snb() y=[A1] c00 = "D:\Berichte\Bericht " & Right(y, 2) If Dir(c00, 16) = "" Then MkDir c00
For j = Range("A1") To Range("B1") ActiveWorkbook.SaveAs c00 & "\" & Format(j, "yyyymmdd") & ".xlsx", 51 Next ActiveWorkbook.Close 0 End Sub
? Wobei ich dieses Makro flexibler finde.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Ralf, Hinsichtlich flexibel wäre noch was zu tun. Da sollte in der Schleife A2 und B2 stehen ...  Würde ich im Prinzip auch so handhaben. Wenn mal mittendrin irgendein Fehler auftritt und schon etliche Daten erstellt sind, dann kann man in A2 ein neues Startdatum eingeben und an der Stelle weitermachen. Ich würde dazu aber noch in einer Zelle den "Iststand" ausgeben, damit ich nicht lange nach dem letzten Datum suchen muss. y hab ich rausgenommen, wegen einer Verwendung würde ich keine Variable einsetzen. PHP-Code: Sub M_snb() Dim j%, c00$ c00 = "D:\Berichte\Bericht " & Right([a1], 2) If Dir(c00, 16) = "" Then MkDir c00 For j = Range("A2") To Range("B2") ActiveWorkbook.SaveAs c00 & "\" & Format(j, "yyyymmdd") & ".xlsx", 51 Cells(2, 3) = ActiveWorkbook.name Next ActiveWorkbook.Close 0 End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 12.04.2014
Version(en): 2007 / 2010
18.12.2015, 10:13
(Dieser Beitrag wurde zuletzt bearbeitet: 18.12.2015, 10:51 von WiK.)
Hallo Andre, Wenn ich "Dim j%, c00$" verwende, ist "For j = Range("A2") To Range("B2")" gelb hinterlegt. Nehme dafür aber "Dim c00 As String und Dim j As Long" läuft der Code durch. @snb Bei deinen Code, habe ich noch "Dim y As String" eingefügt, sonst bleibt der Code bei "y = [A1]" hängen und y ist blau hinterlegt. Diesen Makro finde ich auch besser ( flexibler ). Es brauch nur was in A2 und B2 geändert werden und nicht im Makro. Code: c00 = "D:\Berichte\Bericht " & Right([a1], 2) If Dir(c00, 16) = "" Then MkDir c00 For j = Range("A2") To Range("B2")
Gruß Willy
Registriert seit: 10.04.2014
Version(en): 2016 + 365
Hi André, (17.12.2015, 10:14)schauan schrieb: Hinsichtlich flexibel wäre noch was zu tun. Da sollte in der Schleife A2 und B2 stehen ...  ja, klar. Ich wußte, ich wollte vor dem posten noch was ändern.
Registriert seit: 29.09.2015
Version(en): 2030,5
18.12.2015, 11:14
(Dieser Beitrag wurde zuletzt bearbeitet: 18.12.2015, 11:14 von snb.)
Zu diesem Zweck braucht man weder ein Arbeitsblatt, noch 'option explicit' Code: Private sub Workbook_open() c00 = "D:\Berichte\Bericht " & Right(year(date), 2)
If Dir(c00, 16) = "" Then MkDir c00
For j = 1 to 365 ThisWorkbook.SaveCopyAs c00 & "\" & Format(dateserial(year(date),1,j), "yyyymmdd") & ".xlsx" Next end if End Sub
|