AW: AW:mit Split
09.03.2018 12:59:23
Jürgen
Hallo Harry
Vielen Dank für deinen Code, dieser hat mir schon geholfen!
Allerdings habe ich immernoch einen Fehler im code, den ich nicht ausmachen kann!
ICh habe in D1 6 Worte mit jeweils über 5 Buchstaben stehen.
Wenn ich den Code nun starte, und die Anzahl 5 eingebe, läuft der Code einwandfrei ab und er sagt mir zum Ende, das es zuviele Buchstaben sind und der Code started den Code über Call erneut.
Jetzt werde ich wieder gefragt wie viele Zeichen ich nutzen möchte: Wenn ich nun auf Abbrechen gehe, kommt die Fehlermeldung!
Wo liegt der Fehler? Ich fürchte auch das meine ganzen "End If" nicht so richtig sind.
Beste Grüße Jürgen
HIer der Code:
Sub Tabellenblatt_benennen()
'MsgBox Worksheet.Name
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
Dim strTitle As String
Dim a As Variant
'Dim anzahl1 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 & " ", vbOKCancel)
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
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
Exit Sub
Case 6
strTabelle = Zelle
Zelle = strText1
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"
Call Tabellenblatt_benennen
Else
' unerlaubte Zeichen prüfen
For bytFalsch = 0 To 6
If InStr(Zelle, arrFalsch(bytFalsch)) > 0 Then
MsgBox "In Einrichtung oder Ort sind " & vbNewLine & "" & _
vbNewLine & "unerlaubte Zeichen enthalten * [ ] / \ ? :"
blnFalsch = True
Exit For
End If
Next bytFalsch
If blnFalsch = True Then
ActiveSheet.Name = strTabelle
' MsgBox "Zu viele Zeichen gewählt, bitte geben Sie weniger _
Zeichen ein!"
' Call Tabellenblatt_benennen
End If
ActiveSheet.Name = Zelle
MsgBox "Tabellennamen eingetragen"
End If
End If
End Select
End If
End With
Call Passwort_an
End Sub