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
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.