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