Kopieren per Makro, Formeln fehlen
#1
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 ?

Didi
Top
#2
Moin!
Prinzipiell funktioniert das Makro.
Mindestens notwendig: Deine nicht korrekt kopierten Formeln.
Besser: die ganze Mappe.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#3
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.

Didi


Angehängte Dateien
.xlsm   Wochenzettel_2016.xlsm (Größe: 49,84 KB / Downloads: 7)
Top
#4
Hallo,

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.
Top
#5
Zitat:... und was heißt das auf deutsch?

Ich habe es nicht verstanden.

Die Blätter haben im Beispiel die Bezeichnung 1,2,3.....

Im Original soll es später  KW01,KW02,KW03.....  werden.

Mit meinen Formelkentnissen bin ich bis jetzt aber erst soweit das es nur klappt wenn ich die Blätter mit Zahlen kennzeichne.

Didi
Top
#6
Hallo,

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.
Top
#7
Hier mal als XLS.

Das Makro ist nur zum einmaligen erzeugen von 52 Blätter.

Es ist natürlich nicht in der xls enthalten.

Didi


Angehängte Dateien
.xls   Wochenzettel_2016.xls (Größe: 601,5 KB / Downloads: 2)
Top
#8
Hallo,

Zitat:Das Makro ist nur zum einmaligen erzeugen von 52 Blätter.
Es ist natürlich nicht in der xls enthalten.

... in der Tat, es ist nicht drin. Und warum nicht?
Das Erstellen der Blätter und das Umbenennen kann in einem Rutsch erfolgen.
Top
#9
Hallo Didi,

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.
Gruß Atilla
Top
#10
Hallöchen,

noch eine kleine Ergänzung. Für KW0x müsste man die Angaben noch formatieren:
"KW" & Format(i,"00")
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste