Codeänderung Großschreibung

Hallo,
nachdem mir in diesem Forum schon einmal sehr schnell und mit Erfolg geholfen wurde, möchte ich bei einem weiteren Problem um Hilfe bitten.
Mittels unten aufgeführten Code kann ich in verschiedenen Zellen Text (mehrere Worte) in Kleinschrift eingeben und nach drücken von Enter wird der 1.Buchstabe in Großschrift erstellt.
z.Bsp.: max mustermann wird Max Mustermann
Ich benötige aber manchmal Bindestriche zwischen den Worten. Hierbei wird nur das 1. Wort groß geschrieben.
z.Bsp.: max-mustermann wird Max-mustermann

Option Explicit

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.EnableEvents = False
On Error Resume Next
Dim i As Integer
For i = 90 To 122
If Left(Target, 1) = Chr(i) Then
Target = UCase(Left(Target, 1)) & Mid(Target, 2, Len(Target))
End If
Target = Application.WorksheetFunction.Substitute(Target, Chr(32) & Chr(i), Chr(32) & UCase(Chr(i)))
Next
Application.EnableEvents = True
End Sub

Gibt es eine Möglichkeit dies zu ändern?
Gruß heimat

Hey,
sorry hierbei kann ich Dir gar nicht helfen. Ich hoffe, es gibt jemand anderes der dir diese Frage beantworten kann.
LG
Sandra

Hallo Heimat,

leider kann ich dir bezüglich deines Problems nicht helfen. Aber ich wünsche dir viel Erfolg bei den anderen Experten.
Gruß
Thomas

sorry, da kann ich leider nicht helfen.

gruß
tom

Hallo,

was heißt den manchmal? gibt es irgendeine Bedingung für den Bindestrich?

Gruß
Christian

Hier der geänderte Code:

Option Explicit

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.EnableEvents = False
On Error Resume Next
Dim i As Integer , x As Long, Text1 As String
For i = 97 To 122
If Left(Target, 1) = Chr(i) Then
Target = UCase(Left(Target, 1)) & Mid(Target, 2, Len(Target))
End If
Target = Application.WorksheetFunction.Substitute(Target, Chr(32) & Chr(i), Chr( 45 ) & UCase(Chr(i)))
Next
x = 1: Text1 = Target
Do
x = InStr(x, Text1, „-“)
If x = 0 Then Exit Do
If MsgBox(Left(Text1, x - 1) & " - " & Right(Text1, Len(Text1) - x), vbDefaultButton2 + vbQuestion + vbYesNo, „Zeichen austauschen…“) = vbYes Then
Mid(Text1, x, 1) = Chr(32)
End If
x = x + 1
Loop
Target = Text1

Application.EnableEvents = True
End Sub

Habe den geänderte bzw. beigefügten Code Fett markiert. Hoffe es trifft deinen Vorstellungen.

Gruß
Andreas

Kann leider nicht weiterhelfen