Mein Wochenzettel ist nun sogut wie 2016 fertig. Nun wollte ich ihn gleich für das ganze Jahr vervielfachen und habe folgendes gefunden:
Zitat:Sub NewTablesByName() Dim i As Integer For i = 2 To 52 Sheets(1).Copy after:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = "KW" & i Next i End Sub
Das vervielfachen klappt auch, aber:
Nur Formeln welche sich auf das selbe Blatt beziehen werden kopiert.
Formeln welche sich auf das Vorgängerblatt beziehen fehlen. (Übernahme eines Wertes).
Kopiere ich das Blatt einzeln benenne es passend um bleiben auch diese Formeln erhalten. (=indirekt....)
Was für einen Weg gibt es noch ein Blatt 50 mal zu kopieren ohne Formeln zu verlieren ?
26.12.2015, 20:07 (Dieser Beitrag wurde zuletzt bearbeitet: 26.12.2015, 20:07 von Didi.)
In J41 befindet sich eine Formel welche nicht kopiert wurde. In K und L die leichtere Formel Eigendlich sollten die Blätter KW01 - KW52 sein. Musste es aber ändern da ich noch nicht dahinter gekommen bin wie ich neben den Zahlen auch Buchstaben einsetzen kann um auf das Vorgängerblatt zu kommen.
Zitat:Musste es aber ändern da ich noch nicht dahinter gekommen bin wie ich neben den Zahlen auch Buchstaben einsetzen kann um auf das Vorgängerblatt zu kommen.
... und was heißt das auf deutsch? Ich habe es nicht verstanden.
Zitat:Mit meinen Formelkentnissen bin ich bis jetzt aber erst soweit das es nur klappt wenn ich die Blätter mit Zahlen kennzeichne.
Nun verstehe ich erst recht nicht. Du arbeitest doch in der Datei mit Makros. Wozu also dann der Wille, daß mit Formeln lösen zu wollen? Mit Makro ist das doch ein Klacks.
Zum besseren Verständnis, ich habe momentan nicht die Möglichkeit, mir Deine Datei anzusehen. Auf meinem Rechner hier kann ich derzeit nur bis Excel2003 mithalten. Also *.xlsm ist für mich jetzt nicht lesbar.
wenn Du das Blatt KW1 manuell erstellt hast, dann ginge folgender Code:
Code:
Sub NewTablesByName() Dim i As Integer For i = 2 To 52 Sheets("KW1").Copy after:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = "KW" & i ActiveSheet.Range("E2").Value = "KW" & i ActiveSheet.Range("B30").Formula = "=KW" & i - 1 & "!B30" Next i End Sub
Mit dem Code wird in E2 der Name ohne Formel eingetragen und in B30 die Formel, welche sich auf die Vorwoche bezieht. Es sind keinerlei Fehlerabfragen im Code. Wenn Du den Code zwei mal hintereinander ausführst, wird es sofort zum Fehler kommen.