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
Gibt es eine Möglichkeit dies zu ändern?
Gruß heimat

Hy,
sorry aber du hast den Code vergessen den du korrigiert haben möchtest.
MfG
Dobby

Hallo, ich werde dir jetzt kaum den ganzen quelltext hier erstellen können.

Aber hier ein paar Schnipsel

Instr("-",suchzelle) --> gibt die Stelle (int) aus, wo das suchzeichen ist. Wenn 0 dann nicht vorhanden

Und dann weißt du an dem Zeichen danach ein ucase vornehmen musst.

Hoffe konnte dir helfen. Mit mobilem Internet auf dem Handy kann ich nicht so ausführlich helfen

Lg OVM


Ich bitte jederzeit um Feedback. Denn davon lebt wer-weiß-was!

Hy,
sorry aber du hast den Code vergessen den du korrigiert haben
möchtest.
MfG
Dobby

Pardon,

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

Hallo,

keine Ahnung, das könnte über den Wortascii code gehen. Z.B. alt 0248 für ø usw.

Gruß

Kivelitz

„unten aufgeführten Code“ finde ich leider nicht…

„unten aufgeführten Code“ finde ich leider nicht…

Pardon,

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

Hallo,
Die unten gebaute Funktion macht das, was du möchtest.
s ist der Quellstring snew das Ergebnis.
Versuch es einzubauen es sollte funktionieren
Grüße
Dobby

Sub test()
Dim s, snew As String
Dim splitter() As String
Dim i As Integer

s = „hallo-du da“

splitter = split(s, " ") 'String nach leerzeichen aufsplitten
For i = 0 To UBound(splitter)
'Für jedes element des arrays den ersten buchstaben großschreiben
snew = snew + UCase(Left(splitter(i), 1)) + Mid(splitter(i), 2, Len(splitter(i))) + " "
Next

'Ausgabe des neuen Textes
MsgBox snew

End Sub

versuche:
Target = Application.WorksheetFunction.Substitute(Target, Chr(32) & Chr(i), „-“ & Chr(i))

Hallo, ich war ein paar Tage in Urlaub und bin gerade zurückgekehrt, sorry. Ich kann keinen Code für die Konvertierung finden, aber prinzipiell sollte es möglich sein, wenn man nach einem Leerzeichen konvertiert auch nach anderen Sonderzeichen zu konvertieren.
Falls das Problem noch aktuell ist, bitte noch einmal melden
Viel Erfolg
Rainer