Ich habe eine Exceltarbeitsmappe in der sich mehrere Tabellenblätter befinden. In den einzelnen Tabellenblätter sind Personen einzelner Jahrgänge meiner Berufsgruppe augeführt (z.B. 2000 , 2001 , 2006 )
Nun habe ich ein Makro geschrieben, welches es ermöglicht in Textfelder die persönlichen Daten wie Name, Vorname, Jahrgang ( Einstelljahrgang) usw. einzugeben und nach einem Klick auf den Button "Eintragen" automatisch in das passende Tabellenblatt eingetragen wird bzw. ein neues Tabellenblatt erstellt wird. Zum erstellen folgender Code:
For Each Worksheet In Worksheets
If Jahr = Worksheet.name Then
GoTo Eintragen:
End If
Next Worksheet
Worksheets.Add
Bearbeiten:
tabelleneu = ("Tabelle" + Str(j))
tabelleneu = Replace(tabelleneu, " ", "")
Worksheets(tabelleneu).name = Jahr
Worksheets(Jahr).Tab.ColorIndex = zufallszahl
Worksheets("Vorlage").Range("A1:J6").Copy
Worksheets(Jahr).Select
Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveSheet.Paste
Application.CutCopyMode = False
Worksheets(Jahr).Range("A1:I1").FormulaR1C1 = "Klassenliste " + Jahr
Worksheets(Jahr).Move Before:=Worksheets(anzahl)
Mein Problem ist, das ich nach dem Erstellen des neuen Tabellenblatts den Namen ändern möchte.
Beim ersten erstellen funktioniert dies auch, da die neu erstellte Tabelle "Tabelle1" , doch sobald ich ohne zu speichern und zu schließen eine neue Person eintragen möchte in einem noch nicht angelegtem Tabellenblatt wird dieses obwohl das Tabellenblatt "Tabelle1" bereits in z.B. 2007 umbenannt wurde mit dem Namen "Tabelle2" angelegt. Daher weiß ich nicht wie ich dieses nun anspreche, wäre es sinnvoll eine Variable in eine Zelle zu schreiben die sich nach dem Erstellen eines Tabellenblatts um 1 erhöt und beim Öffnen der Datei wieder auf 1 gesetzt wird? Und wenn man einen ErrHandler nutzt also
On Error GoTo ErrHandler:
ErrHandler:
GoTo test:
wieso funkioniert dieser nur einmal?
D.h. wieso springt er nur einmal an die angegebene Stelle und nicht öfter?
Nun habe ich ein Makro geschrieben, welches es ermöglicht in Textfelder die persönlichen Daten wie Name, Vorname, Jahrgang ( Einstelljahrgang) usw. einzugeben und nach einem Klick auf den Button "Eintragen" automatisch in das passende Tabellenblatt eingetragen wird bzw. ein neues Tabellenblatt erstellt wird. Zum erstellen folgender Code:
For Each Worksheet In Worksheets
If Jahr = Worksheet.name Then
GoTo Eintragen:
End If
Next Worksheet
Worksheets.Add
Bearbeiten:
tabelleneu = ("Tabelle" + Str(j))
tabelleneu = Replace(tabelleneu, " ", "")
Worksheets(tabelleneu).name = Jahr
Worksheets(Jahr).Tab.ColorIndex = zufallszahl
Worksheets("Vorlage").Range("A1:J6").Copy
Worksheets(Jahr).Select
Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveSheet.Paste
Application.CutCopyMode = False
Worksheets(Jahr).Range("A1:I1").FormulaR1C1 = "Klassenliste " + Jahr
Worksheets(Jahr).Move Before:=Worksheets(anzahl)
Mein Problem ist, das ich nach dem Erstellen des neuen Tabellenblatts den Namen ändern möchte.
Beim ersten erstellen funktioniert dies auch, da die neu erstellte Tabelle "Tabelle1" , doch sobald ich ohne zu speichern und zu schließen eine neue Person eintragen möchte in einem noch nicht angelegtem Tabellenblatt wird dieses obwohl das Tabellenblatt "Tabelle1" bereits in z.B. 2007 umbenannt wurde mit dem Namen "Tabelle2" angelegt. Daher weiß ich nicht wie ich dieses nun anspreche, wäre es sinnvoll eine Variable in eine Zelle zu schreiben die sich nach dem Erstellen eines Tabellenblatts um 1 erhöt und beim Öffnen der Datei wieder auf 1 gesetzt wird? Und wenn man einen ErrHandler nutzt also
On Error GoTo ErrHandler:
ErrHandler:
GoTo test:
wieso funkioniert dieser nur einmal?
D.h. wieso springt er nur einmal an die angegebene Stelle und nicht öfter?