Microsoft Excel

Herbers Excel/VBA-Archiv

Buchstaben abwechseln groß und klein | Herbers Excel-Forum


Betrifft: Buchstaben abwechseln groß und klein von: Andy Herrmann
Geschrieben am: 15.10.2008 16:21:29

Hallo Leute!

Ich probiere schon ne ganz Weile an folgendem "Problem".

In der Zelle A1 steht ein beliebig langer Text. Ich hätte jetzt gern die Buchstaben abwechselnd groß und dann klein -- 'HaLlO LeUtE, HeUtE iSt mItTwOcH'

mir fällt allerding keine wirkliche Lösung dafür ein, wie ich einzelne Zeichen auslesen/behandeln könnte.
Hatte nen bissl mit ner for-next Schleife "Ucase(Left)" probiert, aber irgendwie passierte da garnix.
Foum und Google schweigen sich bisher leider auch aus :-(

Hat jmd von Euch ne springende Idee? Wäre super!

Danke schonmal
Andy

  

Betrifft: AW: Buchstaben abwechseln groß und klein von: David
Geschrieben am: 15.10.2008 16:40:01

Hallo Andy,

das sollte klappen:

Option Explicit

Sub test()

Dim AText, NText, Letter As String, i As Byte

AText = Cells(1, 1)

For i = 1 To Len(AText)
    Letter = Mid(AText, i, 1)
    If Int(i / 2) = i / 2 Then
        Letter = LCase(Letter)
    Else
        Letter = UCase(Letter)
    End If
    NText = NText & Letter
Next
Cells(1, 2) = NText

End Sub



Evtl. musst du noch anpassen, was bei einem Leerzeichen (falls möglich) passieren soll und das Klein/Gross kannst du ggf. umdrehen.

Gruß
David


  

Betrifft: AW: Buchstaben abwechseln groß und klein von: Andy Herrmann
Geschrieben am: 15.10.2008 17:33:49

Das ist ja der helle Wahnsinn!!

Funktioniert beides super!
"Len" kannte ich noch gar nicht... wieder was gelernt *freu*

Vielen Dank!!


  

Betrifft: AW: Buchstaben abwechseln groß und klein von: JogyB
Geschrieben am: 15.10.2008 16:52:26

Zwei Möglichkeiten:

' als Funktion
Public Function grossKlein(ByRef queLLe As Range) As String

    Dim i As Long
    
    On Error GoTo errorHandler
    
    ' Nur für eine Zelle
    If queLLe.Cells.Count > 1 Then
        grossKlein = "FEHLER"
        Exit Function
    End If
    
    ' Abarbeitung der Buchstaben
    For i = 1 To Len(queLLe.Value)
        If i Mod 2 = 0 Then
            grossKlein = grossKlein & UCase(queLLe.Characters(i, 1).Caption)
        Else
            grossKlein = grossKlein & LCase(queLLe.Characters(i, 1).Caption)
        End If
    Next
    
    On Error GoTo 0
    Exit Function
    
errorHandler:
    On Error Resume Next
    grossKlein = "FEHLER"
    On Error GoTo 0
End Function

' Als Sub, macht das für alle selektierten Zellen
Public Sub machGrossKlein()

    Dim i As Long
    Dim zeLLe As Range
    
    Application.ScreenUpdating = False
    On Error GoTo errorHandler
    
    ' Abarbeitung aller Zellen
    For Each zeLLe In Selection
    ' Abarbeitung der Buchstaben
        For i = 1 To Len(zeLLe.Value)
            If i Mod 2 = 0 Then
                zeLLe.Characters(i, 1).Caption = UCase(zeLLe.Characters(i, 1).Caption)
            Else
                zeLLe.Characters(i, 1).Caption = LCase(zeLLe.Characters(i, 1).Caption)
            End If
        Next
    Next

errorHandler:
    On Error GoTo 0
    Application.ScreenUpdating = True
End Sub


Gruss, Jogy


  

Betrifft: AW: Buchstaben abwechseln groß und klein von: Bertram
Geschrieben am: 15.10.2008 17:01:50

Hallo Andy,

nur mal so aus Jux: https://www.herber.de/bbs/user/56041.xls

Gruß
Bertram


  

Betrifft: als UDF von: Rudi Maintaire
Geschrieben am: 15.10.2008 17:12:32

Hallo,

Function GrossKlein(strTxt As String) As String
  Dim i As Integer
  For i = 1 To Len(strTxt)
    Select Case i Mod 2
      Case 0: GrossKlein = GrossKlein & LCase(Mid(strTxt, i, 1))
      Case 1: GrossKlein = GrossKlein & UCase(Mid(strTxt, i, 1))
    End Select
  Next
End Function


Gruß
Rudi


Beiträge aus den Excel-Beispielen zum Thema "Buchstaben abwechseln groß und klein"