Fehler im Makro ?

308 Aufrufe
Gefragt 30, Dez 2016 in Tabellenkalkulation von twototoulouse Einsteiger (73 Punkte)
Hallo !
Ich habe eine Excel Datei mit einem Blatt. Dieses Blatt trägt als Bezeichnung das Datum, das auch auf dem Blatt in Zelle A 1 steht.
Das Makro soll nun dieses eine Blatt 364 mal kopieren und das Datum in Zelle A 1 und die Tabellenblattbezeichnung bei allen kopierten Blättern fortlaufend ändern.
Gehe ich nun auf das Makro ausführen, kopiert er los bis zum 12.09.17, dann stoppt er, zeigt "Laufzeitfehler `1004`, Die Copy-Methode des Worksheet-Objektes konnte nicht ausgeführt werden" . Beim Debuggen ist die Zeile Sheets("01.01.17").Copy after:=Sheets(Sheets.Count) gelb markiert.
Warum aber kopiert er bis zum 12.09. und dann nicht mehr? Datei zu groß? Steht eigentlich nicht viel drin. Habe PC mit Windows XP und Excel 2000.
Vielleicht kann mir jemand einen Tip geben?


Sub TabKopierenDatumÄndern()
Dim vardatum As Date
Dim i As Integer

vardatum = "01.01.2017"
'Tabelle1 anpassen (so wie deine zu kopierende Tab heißt)
For i = 1 To 364
Sheets("01.01.17").Copy after:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = vardatum + i 'Tabelle in den Namen ändern, der erscheinen soll..
Sheets(Sheets.Count).Range("A1") = vardatum + i
Sheets(Sheets.Count).Range("A1").NumberFormat = "DD.MM.YY"
Next
End Sub

Vielen Dank im Voraus
Gruß
twototoulouse

3 Antworten

0 Punkte
Beantwortet 30, Dez 2016 von computerschrat Profi (17,897 Punkte)
Hallo twototolouse,

da hängst du wieder an der Grenze 255. Der 12.09. ist der 255. Tag im Jahr und der näcste Tag sprengt den Wertebereich eines Bytes.
Allerdings sehe ich nicht, welche benutzte Variable hier das Problem darstellt. Sheets.Count ist im Long-Format und kann damit wesentlich größere Werte annehmen.



Gruß
computerschrat
0 Punkte
Beantwortet 30, Dez 2016 von rainberg Profi (14,880 Punkte)
Hallo,

die maximale Anzahl von Arbeitsblättern in einer Arbeitsmappe ist vom verfügbaren Arbeitsspeicher abhängig,.
Dessen Größe musst du mal erforschen, wahrscheinlich ist er, in deinem System, für 365 Blätter zu klein.

Am Code liegt es jedenfalls nicht, der läuft bei mir ohne Probleme.

Gruß
Rainer
0 Punkte
Beantwortet 30, Dez 2016 von twototoulouse Einsteiger (73 Punkte)
Ja das alte Problem.
Habe das Makro jetzt mal auf meinem neuen Rechner ausprobiert ( Win7, Arbeitsspeicher 15 GB , Office 2000) mit der gleichen Datei und dem gleichen Makro. Jetzt kommt am 12.09. nicht Laufzeitfehler sondern: Microsoft Visual Basic ( rotes rundes Feld mit weißem Kreuz) 400

Habe jetzt mal eine andere blanko Excel Datei genommen, auch mit nur einem Tabellenblatt ohne was einzutragen, dieses 01.01.17 genannt, und siehe da , es funktioniert.
Nur nicht bei der anderen Datei.

Sehr seltsam
...