Sie brauchen Ihren #Text in #Kleinbuchstaben? In #Großbuchstaben? Den Anfang Von Jedem Wort Groß? Weil die Datenerfassung z.B. schlampt und KathAriNa schwarzeR in die Zelle A1 schreibt?
In Excel benutzen Sie dafür die Funktionen
=KLEIN(A1) für katharina schwarzer
=GROSS(A1) für KATHARINA SCHWARZER
=GROSS2(A1) für Katharina Schwarzer
Ach, Sie arbeiten in einer Access-Abfrage. Dann gewöhnen Sie sich um; benutzen Sie bitte Kleinbst(Ausdruck), Großbst(Ausdruck). Und mehr gibt es nicht, Jeden Ersten Buchstaben Groß müssen Sie (auf komplizierte Art und Weise) selbst basteln.
In VBA bieten sich LCase(Ausdruck) und UCase(Ausdruck) für alles-klein bzw. ALLES-GROSS an. Für die Jeden Ersten Buchstaben Groß-Funktionalität bieten sich zwei Varianten an:
StrConv(„kathaRina schwArzer-kaNNs„,vbProperCase) ist recht brav, setzt aber nur erste Zeichen groß, die auf ein Leerzeichen folgen – hier wäre das Ergebnis also Katharina Schwarzer-kanns
Tja, oder Sie schreiben sich eine Funktion (oder kopieren diese hier):
Public Function GrossKlein(myString)
Dim isFirst As Boolean
Dim Ch As String * 1
Dim I As Long
If IsNull(myString) Then
GrossKlein = myString
Else
GrossKlein = ""
isFirst = True
For I = 1 To Len(myString)
Ch = Mid(myString, I, 1)
If StrComp(LCase(Ch), UCase(Ch), vbBinaryCompare) Then
Ch = IIf(isFirst, UCase(Ch), LCase(Ch))
isFirst = False
Else
isFirst = True
End If
GrossKlein = GrossKlein & Ch
Next I
End If
End Function
Damit wird jedes Zeichen, das nicht auf einen Buchstaben (alle Zeichen, bei denen UCase nicht dasselbe Ergebnis liefert wie LCase) folgt, mit UCase in Großschreibung dargestellt, alle anderen Zeichen in Kleinschreibung, und Nicht-Buchstaben bleiben, wie sie sind.
Katharina Schwarzer-Kanns