Ich habe hier schon einen Code, der mit Hilfe einer Liste von Begriffen ein neues Arbeitsblatt mit passendem Namen erstellt.
Nun ist es aber so, dass zu der ursprünglichen Liste noch Begriffe dazu gekommen sind, ich aber mit Hilfe des Makros keine neuen Arbeitsblätter mehr erstellen kann , weil manche Namen ja schon bestehen.
Hier ist mal der Code
Sub NeuesBlattundName()
Dim rngC As Range
With Sheets(1)
For Each rngC In .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp))
rngC.EntireRow.Copy Worksheets.Add.Cells(1, 1)
ActiveSheet.Name = CheckSheetName(ActiveSheet.Cells(1, 1))
Next
End With
End Sub
Function CheckSheetName(strName As String) As String
Dim strNotAllowed As Variant
Dim n As Integer
'Im Tabellennamen nicht zulässige Zeichen
strNotAllowed = Array(":", "\", "/", "?", "*", "[", "]")
'unerlaubte Zeichen durch nichts ersetzen
For n = 0 To UBound(strNotAllowed)
strName = Replace(strName, strNotAllowed(n), "")
Next
'Namen auf 31 Zeichen begrenzen
CheckSheetName = Left(strName, 31)
End Function
Was muss ich nun ändern, damit die Bereits vorhandenen Sachen bestehen bleiben, und nur von neuen Listeneinträgen, neue Arbeitsblätter erstellt werden?
Und kann man ein Makro schreiben, durch das sich ein Suchformular öffnet, mit dem man nach einem im Arbeitsblattnamen vorhandenen Textstück suchen kann?
Es ist nämlich teilweise recht mühsam in über 100 Arbeitsblättern das passende zu suchen.