habe folgenden Code:
Private Sub CommandButton2_Click()
Dim i As Integer, j As Integer, irow As Integer, anlegen As Worksheet
On Error Resume Next
For i = 0 To ListBox4.ListCount - 1
For j = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(j) = True Then
Set anlegen = Worksheets.Add
With anlegen
.name = (UserForm6.ListBox2.Text)
.Move after:=Sheets(Sheets.Count)
.Cells.Font.Size = 14
.Cells.Font.name = arial
.Cells.Font.Bold = True
End With
irow = Worksheets(UserForm6.ListBox2.Text).Cells(Rows.Count, j + 1).End(xlUp).Row + 1
Worksheets(UserForm6.ListBox2.Text).Cells(irow, j + 1).Value = ListBox4.List(i)
Worksheets(UserForm6.ListBox2.Text).Cells(1, j + 1).FormulaR1C1 = ListBox1.List(j)
End If
Next
Next
End Sub
In der Userform befinden sich diverse Listboxen. Die Auswahl in Listbox2 bedingt den Namen eines neuen Tabellenblattes, worin die Daten angelegt werden sollen. Listbox4 soll komplett ausgelesen werden, und genau hier liegt mein Problem: Wie kann ich den Code so abfangen, dass wenn das Tabellenblatt (=Name aus Listbox2) bereits angelegt wurde, die Prozedur des Anlegens übersprungen wird. Mit "On error resume next" am Anfang des Codes werden die Daten zwar korrekt eingetragen, jedoch bei Mehrfachauswahl auch ungewünschte leere Tabellenblätter erzeugt.
Vielen Dank schon jetzt für Eure Hilfe...
Gruss Dirk