Hallo zusammen,
ich habe ein eigentlich recht einfahes Problem,
ich möchte aus einer Liste, die beliebig viele Einträge haben kann, zu jedem Eintrag ein Tabellenblatt erstellen.
Bisher erstellt meine Lösung immer eine feste Anzahl Tabellenblätter (wSh.Range("A6:A20"))
"A20" soll jetzt durch die letzte verwendete Zeile ersetzt werden, um das variabel zu machen.
Zusätzlich soll keine neue Seite entstehen, falls schon eine mit dem entsprechenden Namen vorhanden ist.
Bisher sieht meine Lösung aus wie folgt:
Sub AddSheets()
'Dennis: Erzeugt neue Tabellenblätter aus Einträgen in Übersichtsliste
Dim xRg As Excel.Range
Dim wSh As Excel.Worksheet
Dim wBk As Excel.Workbook
'Dim rng As Range
Set wSh = ActiveSheet
Set wBk = ActiveWorkbook
'Set rng = Tabelle1.Range(Tabelle1.Cells(2, 1), Tabelle1.Cells(Tabelle1.Rows.Count, 2).End(xlUp))
Application.ScreenUpdating = False
For Each xRg In wSh.Range("A6:A20")
With wBk
.Sheets.Add after:=.Sheets(.Sheets.Count)
On Error Resume Next
ActiveSheet.Name = xRg.Value
If Err.Number = 1004 Then
Debug.Print xRg.Value & " already used as a sheet name"
End If
On Error GoTo 0
End With
Next xRg
Application.ScreenUpdating = True
End Sub
Dazukommen muss jetzt also noich die Funktion "bis zur letzten benutzten Zeile" und "Überspringen falls schon vorhanden"
Wer kann helfen?
|