Ich stecke feste mit einem zusammengebastelten Code: Leider reichen meine Kenntnisse nicht aus um den/die Fehler zu finden und auszuschalten.
Bei dem Code wir ein Tabellenblatt nach dem Inhalt der Zelle D1 benannt, aber nur mir einer bestimmten anzahl an Buchstaben pro Wort.
Ich denke dass viele End If usw. falsch gesetzt sind, dass wenn die MsgBox'en abgebrochen oder per rotem Kreuz gecancelt werden, nicht abgebrochen wird usw..... auch die "Tab" Abstände sind für eingefleischte Profis schlimm anzusehen.
Ich hoffe ich hab mich einigermaßen erklären können. Ich hange mal den verkorksten Code mit an. pre>
Sub Tabellenblatt_benennen()
Dim blnFalsch As Boolean
Dim strTabelle As String
Dim arrFalsch()
Dim bytFalsch As Byte
Dim wksTab As Worksheet
arrFalsch = Array("*", "[", "]", "/", "\", "?", ":")
Dim Ret_type As Integer
Dim strMsg As String, intZahl As Integer
Dim strTitle As String, anzahl1 As String
Dim a As Variant
Dim i As Long, anzahl As Long
Dim strText As String
Dim strText1 As String
Call Passwort_aus
With Cells(1, 4) '--Text steht in d1
anzahl1 = Application.InputBox("Wie viele Zeichen pro Wort," & vbNewLine & "sollen für den _
Namen benutzt werden?" & vbNewLine & "" & vbNewLine & "Geben Sie die Zahl ein!" & vbNewLine & " _
_
_
", Type:=1)
If anzahl1 False Then 'Wenn NICHT Abbrechen gedrückt wurde
intZahl = CInt(strEingabe) 'String in INTEGER-Zahl umwandeln (zum Rechnen)
'hier noch weitere Befehle
Else
Call Tabellenblatt_benennen
End If
anzahl = anzahl1
If anzahl 0 Then
a = Split(.Value, " ")
For i = LBound(a) To UBound(a)
strText = strText & Left(a(i), anzahl) & ". " 'Zahl entspricht der Zeichenanzahl
Next i
strText1 = strText & Left(Range("d2"), 6) & "."
End If
Ret_type = MsgBox(strText1, 3)
Select Case Ret_type
Case 2
Exit Sub
Case 7
MsgBox "nochmal"
Call Tabellenblatt_benennen
Case 6
Zelle = strText1
strTabelle = Right(strText1, 31) & "."
If Range("d1") = "" Then
MsgBox "Der Name der Einrichtung fehlt"
Exit Sub
Else
' Zeichen nicht mehr als 31
If Len(Zelle) > 31 Then
MsgBox "Zu viele Zeichen gewählt, bitte geben Sie weniger Zeichen ein!"
Call Tabellenblatt_benennen
End If
For Each wksTab In Sheets
If wksTab.Name = Zelle Then
blnFalsch = True
Exit For
End If
Next wksTab
If blnFalsch Then
MsgBox "Name bereits vorhanden"
End If
Exit Sub
' unerlaubte Zeichen prüfen
For bytFalsch = 0 To 6
If InStr(Zelle, arrFalsch(bytFalsch)) > 0 Then
MsgBox "In Einrichtung oder Ort sind " & vbNewLine & " _
unerlaubte Zeichen enthalten * [ ] / \ ? :"" & vbNewLine & "" Bitte bereinigen!"
blnFalsch = True
End If
Exit Sub
Next bytFalsch
If blnFalsch = True Then
ActiveSheet.Name = strTabelle
MsgBox "Zu viele Zeichen gewählt, bitte geben Sie weniger _
Zeichen ein!"
End If
Call Tabellenblatt_benennen
ActiveSheet.Name = Zelle
MsgBox "Tabellennamen eingetragen"
End If
End Select
End If
End With
Call Passwort_an
End Sub
Ich hoffe es kann mir jemand helfen und meine fehler aufzeigen
Beste Grüße Jürgen