Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
560to564
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
560to564
560to564
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

automatisch neue Blätter anlegen

automatisch neue Blätter anlegen
07.02.2005 22:12:36
Mario
Hallo,
könnt Ihr mir bitte bei folgendem Problem helfen? :
Ich möchte in einem wöchentlichen Dienstplan eine Schaltfläche anlegen welche das Datum in einer Zelle prüft ( immer Montag ) und mir dann ein neues Tabellenblatt mit dem Datum des darauffolgenden Montags als Name erstellt
Z.B. Datum in Zelle: 07.02.05 --- neues Arbeitsblatt 14.02.05
Grüsse
Mario

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: automatisch neue Blätter anlegen
Luc
Hallo Mario,
mal den VBA-Editor öffnen, auf Hilfe klicken und sheets eintippen. Da findest du sicher die Methode Sheets.Add usw. Ich versprech dir, es wird nur ein ganz klitzekleines Makro, was du dann schreibst (Einsteigerlevel - genau richtig).
keine Angst - Gruß Luc
AW: automatisch neue Blätter anlegen
07.02.2005 23:44:47
Mario
Danke Luc für deinen Hinweis!
Ich habs nun erstmal so gemacht:

Sub blatt()
' blatt Makro
' Makro am 07.02.2005 von Mario aufgezeichnet
Range("A4").Select
Sheets("7.02.2005").Select
Sheets("7.02.2005").Copy Before:=Sheets(1)
Sheets("7.02.2005 (2)").Select
Sheets("7.02.2005 (2)").Name = "14.02.2005"
Range("D6:J10").Select
ActiveCell.FormulaR1C1 = ""
Range("D6:J10").Select
Selection.ClearContents
Range("G11").Select
End Sub

Soweit so gut. Nur wie bringe ich dem Makro bei, immer das Datum der Zelle A4 + 6 hochzurechnen.
Gruss
Mario
Anzeige
AW: automatisch neue Blätter anlegen
07.02.2005 23:48:26
Josef
Hallo Mario!
Probier mal das.

Sub neuesBlatt()
On Error GoTo ERRORHANDLER
If IsDate(Sheets("Tabelle1").Range("A4")) Then
Worksheets.Add after:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = Format(Sheets("Tabelle1").Range("A4") + 7, "dd.mm.yy")
Else
MsgBox "Ungültiger Eintrag in ""A4"" !"
End If
ERRORHANDLER:
If Err.Number = 1004 Then
Application.DisplayAlerts = False
Sheets(Sheets.Count).Delete
Application.DisplayAlerts = True
MsgBox "Ein Blatt mit diesem Namen existiert bereits!"
Err.Clear
End If
End Sub

Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Anzeige
AW: automatisch neue Blätter anlegen
08.02.2005 00:08:06
Mario
Hallo Sepp, DANKE für deine Hilfe. Jetzt wird die Tabelle perfekt mit dem richtigen Datum angelegt. Nun würde ich gern noch einbauen das auch die Struktur der vorigen Tabelle übernommen wird.
Viele Grüsse
Mario
AW: automatisch neue Blätter anlegen
u_
Sub neuesBlatt()
On Error GoTo ERRORHANDLER
If IsDate(Sheets("Tabelle1").Range("A4")) Then
Worksheets(Worksheets.Count).Copy after:=Sheets(Sheets.Count)
Worksheets(Worksheets.Count).Cells.ClearContents
Sheets(Sheets.Count).Name = Format(Sheets("Tabelle1").Range("A4") + 7, "dd.mm.yy")
Else
MsgBox "Ungültiger Eintrag in ""A4"" !"
End If
ERRORHANDLER:
If Err.Number = 1004 Then
Application.DisplayAlerts = False
Sheets(Sheets.Count).Delete
Application.DisplayAlerts = True
MsgBox "Ein Blatt mit diesem Namen existiert bereits!"
Err.Clear
End If
Anzeige
AW: automatisch neue Blätter anlegen
08.02.2005 15:51:56
Mario
ich habs... Danke für Eure Hilfe!!!
AW: automatisch neue Blätter anlegen
08.02.2005 11:04:23
Mario
DANKE u_ für deinen Beitrag. Ihr seid spitze!!!
Nun kommen wir der Sache schon näher, allerdings treten noch so ein paar kleine Problemchen auf.
Ich hab's nun so :

Sub neuesBlatt()
On Error GoTo ERRORHANDLER
If IsDate(Sheets("Dienstplan").Range("A4")) Then
Worksheets(Worksheets.Count).Copy after:=Sheets(Sheets.Count)
Worksheets(Worksheets.Count).Cells.ClearContents
Sheets(Sheets.Count).Name = Format(Sheets("Dienstplan").Range("A4"), "dd.mm.yy")
Else
MsgBox "Ungültiger Eintrag in ""A4"" !"
End If
ERRORHANDLER:
If Err.Number = 1004 Then
Application.DisplayAlerts = False
Sheets(Sheets.Count).Delete
Application.DisplayAlerts = True
MsgBox "Ein Blatt mit diesem Namen existiert bereits!"
Err.Clear
End If
End Sub

Dh. ich schreibe immer in Tabelle1 (Dienstplan) und erzeuge dann mit der Schaltfläche die jeweilige Tabelle mit dem aktuellen Datum. So klappt das super!

Wie kann ich nun ausser der Struktur, ( hatte mich wohl bischen blöd ausgedrückt) auch die Inhalte mit Formeln und Schaltflächen der vorigen Tabelle übernehmen?

Gruss
Mario
Anzeige
Nun doch noch ein Problem
09.02.2005 00:15:57
Mario
Hallo,
ich habe jetzt, mit eurer Hilfe folgenden Makro Code angelegt:
ub neuesBlatt()
On Error GoTo ERRORHANDLER
If IsDate(Sheets("Dienstplan").Range("A4")) Then
Worksheets(Worksheets.Count).Copy after:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = Format(Sheets("Dienstplan").Range("A4"), "dd.mm.yy")
Else
MsgBox "Ungültiger Eintrag in ""A4"" !"
End If
ERRORHANDLER:
If Err.Number = 1004 Then
Application.DisplayAlerts = False
Sheets(Sheets.Count).Delete
Application.DisplayAlerts = True
MsgBox "Ein Blatt mit diesem Namen existiert bereits!"
Err.Clear
End If
End Sub
nun kopiert Excel mir die Daten nicht richtig welche ich in die Tabelle "Dienstplan" eintrage.D.h. bei der ersten Tabelle klappts. Allerdings sind alle nachfolgenden Tabellen, bis auf den Namen, vom Inhalt her gleich.
Was muss man im Code verändern damit Excel bei Eintrag in die Tabelle "Dienstplan" immer eine neue Tabelle erzeugt.?
Kenn ihr ein gutes Buch zum Thema VBA?
Gruss
Mario
Anzeige
AW: Nun doch noch ein Problem
09.02.2005 00:44:16
Mario

Sub neuesBlatt()
On Error GoTo ERRORHANDLER
If IsDate(Sheets("Dienstplan").Range("A4")) Then
ActiveSheet.Copy After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = Format(Sheets("Dienstplan").Range("A4"), "dd.mm.yy")
Else
MsgBox "Ungültiger Eintrag in ""A4"" !"
End If
Application.CutCopyMode = False
ERRORHANDLER:
If Err.Number = 1004 Then
Application.DisplayAlerts = False
Sheets(Sheets.Count).Delete
Application.DisplayAlerts = True
MsgBox "Ein Blatt mit diesem Namen existiert bereits!"
Err.Clear
End If
End Sub

So gehts nun ...
AW: Na also! Geht doch! Gratuliere! owT
Luc
AW: Na also! Geht doch! Gratuliere! owT
10.02.2005 22:55:24
Mario
Hallo,
ich habe ein komisches Problem mit dem Makro. Auf meinem System zu Hause läuft alles wunderbar, nur auf dem Rechner im Büro gibts einen Kompilierungsfehler im Modul 2. Und zwar zeigt Excel das mit FORMAT in dieser Zeile "Sheets(Sheets.Count).Name = Format(Sheets("Dienstplan").Range("A4"), "dd.mm.yy")" wohl etwas nicht stimmt. Der einzige Softwareunterschied zwischen beiden Systemen ist das ich Windows XPSP2 und im Büro Windows2000SP4 als Betriebssystem nutze. Excel 2003SP1 haben beide Systeme. Woran kann es liegen?

Sub neuesBlatt()
On Error GoTo ERRORHANDLER
If IsDate(Sheets("Dienstplan").Range("A4")) Then
ActiveSheet.Copy After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = Format(Sheets("Dienstplan").Range("A4"), "dd.mm.yy")
Else
MsgBox "Ungültiger Eintrag in ""A4"" !"
End If
Application.CutCopyMode = False
ERRORHANDLER:
If Err.Number = 1004 Then
Application.DisplayAlerts = False
Sheets(Sheets.Count).Delete
Application.DisplayAlerts = True
MsgBox "Ein Blatt mit diesem Namen existiert bereits!"
Err.Clear
End If
End Sub

Danke schonmal für eure Hilfe!
Gruss
Mario
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige