bin Anfänger in VBA und habe ein Problem mit einer Ausführung eines Codes.
Ich bekomme folgende Fehlermeldung:
Laufzeitfehler 1004:
Anwendungs- oder objektdefinierter Fehler
Wenn ich auf Debug gehe bekomme ich im Code die folgende Zeile gelb makiert:
Sheets(ii + 1).Name = Cells(ii, 4) ' Blätter 5 bis 9
Was mache ich falsch?
Folgender Code betrifft die ganze Geschichte:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ii As Integer
For ii = 4 To 33 ' Zeilen 4 bis 8
If Not Intersect(Cells(ii, 4), Target) Is Nothing Then ' Spalte 2 = B
If BlattNam_Pruefung(Cells(ii, 4)) Then
Sheets(ii + 1).Name = Cells(ii, 4) ' Blätter 5 bis 9
Else
MsgBox "E" & ii & " enthält keinen gültigen Blattnamen: " & vbLf & Cells(ii, 4)
End If
End If
Next ii
End Sub
Function BlattNam_Pruefung(BlaNam As String) As Boolean
' www.excelformeln.de/formeln.html?welcher=96
' www.xlam.ch/pos/rules.htm#Richtlinien%20f%FCr%20Arbeitsblatt-Namen
If BlaNam = "" Or Len(BlaNam) > 31 Then Exit Function
If Application.Evaluate("=SUM((MID(""" & BlaNam & """,COLUMN(1:1),1)" & _
"={"":"";""/"";""\"";""?"";""*"";""]"";""[""})*1)") > 0 Then Exit Function
BlattNam_Pruefung = True
End Function
Gruß
Don