Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Textbox Großschreiben

Betrifft: Textbox Großschreiben von: Chris
Geschrieben am: 12.10.2020 08:00:07

Hallo Forum,


folgendes Makro ersetzt bei Eingabe der Raute, diese durch den Text "Test-".

Nun möchte ich, dass ab dem 6. Zeichen der erste Buchstabe immer großgeschrieben wird, danach klein weiter.

Wie setze ich diese um?


Schon mal Danke, Chris




If TextBox22.Value = "##" Then

TextBox22.Value = VBA.Replace(TextBox22.Value, "##", "Test-", 1)

End If



Betrifft: AW: Textbox Großschreiben
von: UweD
Geschrieben am: 12.10.2020 09:10:16

Hallo

generell so...
    Testtext = "12345abCdE"
    
    Testtext = Left(Testtext, 5) & UCase(Mid(Testtext, 6, 1)) & LCase(Mid(Testtext, 7))
LG UweD

Betrifft: AW: Textbox Großschreiben
von: Nepumuk
Geschrieben am: 12.10.2020 09:10:46

Hallo Chris,

teste mal:

Private Sub TextBox22_Change()
    Dim strText As String
    With TextBox22
        If .Text = "##" Then
            .Text = "Test-"
        ElseIf .TextLength = 6 Then
            strText = .Text
            Mid$(strText, 6, 1) = UCase$(Mid$(.Text, 6, 1))
            .Text = strText
        ElseIf .TextLength > 6 Then
            strText = .Text
            Mid$(strText, .TextLength, 1) = LCase$(Mid$(.Text, .TextLength, 1))
            .Text = strText
        End If
    End With
End Sub

Gruß
Nepumuk

Betrifft: AW: Textbox Großschreiben
von: Chris
Geschrieben am: 12.10.2020 13:06:50

Hallo Nepumuk,

danke für dein Makro. Es läuft fast wie gewünscht, daher etwas genauer:

- Wenn nichts in der TextBox steht soll immer nur der erste Buchstabe groß geschrieben werden, danach klein weiter.

- nur wenn "Test-" drin steht, soll das 6. Zeichen gro0 sein, danach alles klein weiter.

Nochmals Danke.

Chris

Betrifft: AW: Textbox Großschreiben
von: Nepumuk
Geschrieben am: 12.10.2020 13:15:34

Hallo Chris,

so ok?

Private Sub TextBox22_Change()
    Dim strText As String
    With TextBox22
        If .Text = "##" Then
            .Text = "Test-"
        ElseIf Left$(.Text, 5) = "Test-" And .TextLength = 6 Then
            strText = .Text
            Mid$(strText, 6, 1) = UCase$(Mid$(.Text, 6, 1))
            .Text = strText
        ElseIf Left$(.Text, 5) = "Test-" And .TextLength > 6 Then
            strText = .Text
            Mid$(strText, .TextLength, 1) = LCase$(Mid$(.Text, .TextLength, 1))
            .Text = strText
        Else
            .Text = Application.Proper(.Text)
        End If
    End With
End Sub

Gruß
Nepumuk

Betrifft: AW: Textbox Großschreiben
von: Chris
Geschrieben am: 12.10.2020 13:58:50

Vielen Dank euch allen, jetzt läuft es - auch die anderen Makros, ich entscheide mich für das von Nepumuk.

Gruß Chris

Betrifft: AW: Textbox Großschreiben
von: Gerd L
Geschrieben am: 12.10.2020 12:59:30

Moin
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

    With TextBox22
    
        If .TextLength = 5 Then
            
                KeyAscii = Asc(UCase(ChrW(KeyAscii)))
        
        ElseIf .TextLength = 1 Then
            
                If .Text = "#" Then
                    If KeyAscii = 35 Then
                        KeyAscii = 0
                        .Text = "Test-"
                    End If
                End If
        
        End If
    
    End With

End Sub

Gruß Gerd

Betrifft: AW: Textbox Großschreiben
von: Daniel
Geschrieben am: 12.10.2020 13:22:12

HI
muss das während der Eingabe passieren?
in der Regel reicht es aus, das am Schluss zu machen, wenn alles drin steht.

dazu im AfterUpdate-Event der TextBox22 folgender Code:
With Textbox22
    .Text = Replace(.Text, "##", "Test-")
    if .text like "Test-?*" then
        .text = "Test-" & UCase(Mid(.Text, 6, 1)) & LCase(Mid(.Text, 7))
    elseif Len(.Text) > 0 then
       .text = UCase(Left(.Text, 1)) & LCase(Mid(.Text, 2))
    end if
end with

Gruß Daniel