Tipps & Tricks 10.06.2005, 11:30 Uhr

Excel: Neues Arbeitsblatt per Makro erstellen

Problem: Ich möchte in Excel mit VBA den Wert einer Zelle im ersten Arbeitsblatt mit den Namen der übrigen Arbeitsblätter vergleichen. Wenn kein Arbeitsblatt mit einem solchen Namen vorhanden ist, soll automatisch ein neues Arbeitsblatt mit diesem Namen am Ende angelegt werden.
Mit einem Makro können alle Namen der vorhandenen Tabellenblätter mit dem Wert einer Zelle verglichen werden. Noch einfacher geht es aber, wenn wir einfach probieren das Blatt mit dem gewünschten Namen mit dem (neuen) Namen aus der Vorgabezelle zu überschreiben. Wenn das klappt, dann brauchen wir nichts weiter zu tun. Ansonsten soll ein neues Blatt erstellt werden.
Das folgende Makro kann kopiert werden und im Visual Basic Editor von Excel eingefügt werden. Später kann das Makro natürlich einem Knopf zugewiesen oder in die Toolbar aufgenommen werden.
Sub NeuesBlatt()
'Varialen deklarieren
Dim ws As Worksheet, wb As Workbook, sName As String
' Name des neuen Blattes auslesen
sName = ActiveWorkbook.Sheets(1).Range("A1")
Set wb = ActiveWorkbook
' Falls kein Blatt mit dem Namen existiert,
' wird ein Fehler auftreten. Diesen Fangen
' wir vorerst ab.
On Error Resume Next
Set ws = wb.Sheets(sName)
' Wenn kein Blatt mit dem Namen exisitiert...
If Err.Number = 9 Then
On Error GoTo 0
'... wird ein neues erstellt ...
Set ws = wb.Sheets.Add(, wb.Sheets(wb.Sheets.Count))
'... und sein Name gesetzt.
ws.Name = sName
End If
Set ws = Nothing
End Sub


Kommentare
Es sind keine Kommentare vorhanden.