Forums Neueste Beiträge
 

tabellenblätter kopieren

03/02/2008 - 22:38 von th.Engelhardt | Report spam
Hallo an alle,

mich bewegt folgendes Problem, bei welchem ich auf Euere Hilfe hoffe:
Ich habe das Muster eines Dienstplanes erstellt: Tabelle "muster"
Nun habe ich eine weitere Tabelle erstellt: "Start".
In dieser möchte ich das Datum des Beginns des Dienstplanes eintragen, z. B.
4.2.08
Die dazu passende KW habe ich schon gelöst :)., wird automatisch auf der
"Start" Tabelle angezeigt. zb KW 5
Nun möchte ich, daß ein Makro auf der Grundlage des Musters ein neues
Tabellenblatt erzeugt, Name soll die Nummer der KW sein.
Zusatzaufgabe, kann ich erst recht nicht :(
Wenn ich das nàchste Tabellenblatt , zb. "6" für kw 6 erzeugt habe, sollen
sich dort automatisch Bezüge auf das Tabellenblatt KW "5" beziehen.
Irgendwann soll es also so funktionieren:
Ich trage in der "Start" Tabelle den Beginn der neuen Woche ein, starte das
Makro, es entsteht das Blatt, zb. "22" und dies hat automatisch Bezüge auf
das Blatt "21".
Ich hoffe, Ihr könnt mir helfen.
Ich bedanke mich im Voraus

mit freundlichen Grüßen

Thomas
 

Lesen sie die antworten

#1 Peter Schleif
04/02/2008 - 09:14 | Warnen spam
th.Engelhardt schrieb:

Ich trage in der "Start" Tabelle den Beginn der neuen Woche ein, starte das
Makro, es entsteht das Blatt, zb. "22" und dies hat automatisch Bezüge auf
das Blatt "21".



Der untenstehende Code ermittelt das Blatt mit der höchsten KW, fügt
dahinter eine Kopie von "Muster" ein, benennt es um und tràgt einen
Bezug auf den Vorgànger ein. Falls noch gar kein KW-Blatt da ist, wird
die Kopie hinter "Start" angelegt und in die Bezugszelle (A2) der Wert
1 eingetragen.

Position und Name des neuen Blattes werden allerdings ausschließlich
auf Basis der bereits vorhandenen Blàtter ermittelt. Eine Auswertung
von "Start" findet *nicht* statt.

Peter


Sub NeuesBlatt()

Dim sh As Variant
Dim max_sheet As Worksheet
Dim new_sheet As Worksheet


'Tabellenblatt mit der höchsten KW ermitteln
'--
Set max_sheet = Sheets("Start")

For Each sh In Worksheets
If IsNumeric(sh.Name) _
And Val(sh.Name) >= 1 _
And Val(sh.Name) <= 53 _
And Val(sh.Name) > Val(max_sheet.Name) Then
Set max_sheet = sh
End If
Next


'Muster hinter das gefunde Blatt kopieren und umbenennen
'--
Sheets("Muster").Copy After:=max_sheet
Set new_sheet = Sheets("Muster (2)")
new_sheet.Name = Val(max_sheet.Name) + 1
new_sheet.Select


'Bezug auf das Vorgaengerblatt eintragen
'--
If Val(max_sheet.Name) = 0 Then
new_sheet.[A2] = 1
Else
new_sheet.[A2] = "='" & max_sheet.Name & "'!A2+1"
End If

End Sub

Ähnliche fragen