Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
912to916
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
912to916
912to916
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

klein/großschreibung

klein/großschreibung
05.10.2007 11:22:34
Daniel
Hallo!
Ich möchte gerne Text, der in einer Zelle steht in einer anderen Zelle
von der groß/kleinschreibung vertauschen.
Zum Beispile steht in
A1: Name
Das soll in
M1 zu nAME werden.
Geht sowas irgendwie? Am besten per VBA.
Danke für Tipps
Daniel

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Klein/Großschreibung per VBA vertauschen
05.10.2007 11:37:32
NoNet
Hallo Daniel,
es gibt zwar auch unter VBA einige Funktionen bzgl. GROSS-/Kleinschreibung, aber die von Dir gewünshte Funktion ist leider nicht dabei. Daher muss man diese selbst programmieren. Eine Lösung könnte so aussehen :
Sub verTAUSCHen()
    'Vertauscht Gross-/Kleinbuchstaben aus Zelle A1, Ergebnis in M1
    Dim z, temp, pos, Zelle As Range
    Dim Str1, Str2
    Str1 = "abcdefghijklmnopqrstuvwxyzäöüABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ"
    Str2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜabcdefghijklmnopqrstuvwxyzäöü"
    Set Zelle = [A1]
    temp = ""
    For z = 1 To Len(Zelle)
        pos = InStr(Str1, Mid(Zelle, z, 1))
        If pos = 0 Then
            temp = temp & Mid(Zelle, z, 1)
        Else
            temp = temp & Mid(Str2, pos, 1)
        End If
    Next
    [M1] = temp
    Set Zelle = Nothing
End Sub
PS: Für was benötigt man so etwas ?
Gruß, NoNet

Anzeige
AW: Klein/Großschreibung per VBA vertauschen
05.10.2007 12:53:00
Daniel
Hallo @ NoNet!
Danke für die Hilfe. Funktioniert super.
Wie kann ich das nun anpassen, damit ich andere Bereiche auch umwandeln kann?
Also z.B. A1:B5 und A7:B13.
Ich brauche das Ganze dazu, weil ich eine Anwendung damit speise, die die Groß- und Kleinschreibung vertauscht. Daher würde wenn ich dort Name reinkopiere nAME rauskommen. Weil ich das dort aber nicht ändern kann, muss ich den Zwischenschritt in Excel machen.
Grüße,
Daniel

Vertauschen GROSS/Klein für mehrere Zellen
05.10.2007 13:53:00
NoNet
Hallo Daniel,
das folgende Makro ändert den Text direkt in der Zelle, d.h. aus "Name" in A1 wird dann "nAME" in A1.
Den zu bearbeitenden Bereich kannst Du einfach im Code anpassen :
Sub verTAUSCHen2()
    'Vertauscht Gross-/Kleinbuchstaben aus Zellen in Bereich, Ergebnis in gleiche Zelle
    Dim z, temp, pos, Zelle As Range
    Dim Str1, Str2
    Str1 = "abcdefghijklmnopqrstuvwxyzäöüABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ"
    Str2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜabcdefghijklmnopqrstuvwxyzäöü"
    For Each Zelle In [A1:B5,A7:B13] 'Hier die Bereich durch Komma getrennt angeben !
        temp = ""
        For z = 1 To Len(Zelle)
            pos = InStr(Str1, Mid(Zelle, z, 1))
            If pos = 0 Then
                temp = temp & Mid(Zelle, z, 1)
            Else
                temp = temp & Mid(Str2, pos, 1)
            End If
        Next
        Zelle.Value = temp 'Geänderten Text in die Zelle schreiben
    Next
    Set Zelle = Nothing
End Sub
Gruß, NoNet

Anzeige
AW: Vertauschen GROSS/Klein für mehrere Zellen
05.10.2007 13:56:00
Daniel
Ne, sorry. Wie kann ich den Output nach M und N machen?

Ändere: Zelle.Offset(,12).Value = temp '_oT
05.10.2007 14:54:01
NoNet
_oT = ohne Text

Danke!_oT
05.10.2007 15:45:00
Daniel
_oT

AW: klein/großschreibung
05.10.2007 11:47:00
Rudi
Hallo,
in ein Modul:

Function gross_klein(strTxt As String) As String
Dim intTxt As Integer
For intTxt = 1 To Len(strTxt)
Select Case (Asc(Mid(strTxt, intTxt, 1)))
Case 65 To 90
gross_klein = gross_klein & LCase(Mid(strTxt, intTxt, 1))
Case 97 To 122
gross_klein = gross_klein & UCase(Mid(strTxt, intTxt, 1))
Case Else
gross_klein = gross_klein & Mid(strTxt, intTxt, 1)
End Select
Next
End Function


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: klein/großschreibung, Korrektur
05.10.2007 11:50:00
Rudi
Hallo,

Function gross_klein(strTxt As String) As String
Dim intTxt As Integer
For intTxt = 1 To Len(strTxt)
Select Case (Asc(Mid(strTxt, intTxt, 1)))
Case 65 To 90, 196, 214, 220
gross_klein = gross_klein & LCase(Mid(strTxt, intTxt, 1))
Case 97 To 122, 228, 246, 252
gross_klein = gross_klein & UCase(Mid(strTxt, intTxt, 1))
Case Else
gross_klein = gross_klein & Mid(strTxt, intTxt, 1)
End Select
Next
End Function


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

ä ö ü hast Du wohl bei mir abgeguckt ;-) ? _oT
05.10.2007 11:55:00
NoNet
_oT = ohne Text

Anzeige
AW: ä ö ü hast Du wohl bei mir abgeguckt ;-) ? _oT
05.10.2007 12:00:56
Rudi
Hallo,
jepp, hatte ich vergessen.
Noch besser:

Function GROSS_klein(strTxt As String) As String
Dim intTxt As Integer, iFaktor As Integer
For intTxt = 1 To Len(strTxt)
Select Case (Asc(Mid(strTxt, intTxt, 1)))
Case 65 To 90, 196, 214, 220
iFaktor = 32
Case 97 To 122, 228, 246, 252
iFaktor = -32
Case Else
iFaktor = 0
End Select
GROSS_klein = GROSS_klein & Chr(Asc(Mid(strTxt, intTxt, 1)) + iFaktor)
Next
End Function


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: klein/großschreibung
05.10.2007 11:56:00
Tino
Hallo,
ich habe dies so gelöst. Diese

Function muss in ein VBA-Modul
in die Ergebniszelle kommt zBsp.
=Name(A1)  >>  in A1 steht Name ergibt nAME


Function Name(NameZell As String) As Variant
Dim Lng As Variant, a As Variant
Dim NameNeu As String
Lenge = Len(NameZell)
For a = 1 To Lng
If Mid(NameZell, a, 1) = UCase(Mid(NameZell, a, 1)) Then
NameNeu = NameNeu & LCase(Mid(NameZell, a, 1))
Else
NameNeu = NameNeu & UCase(Mid(NameZell, a, 1))
End If
Next a
Name = NameNeu
End Function


Anzeige
AW: klein/großschreibung
05.10.2007 12:07:54
Tino
Hallo,
hat sich wohl ein Fehler eingeschlichen.

Function Name(NameZell As String) As Variant
Dim Lng As Variant, a As Variant
Dim NameNeu As String
Lng = Len(NameZell)
For a = 1 To Lng
If Mid(NameZell, a, 1) = UCase(Mid(NameZell, a, 1)) Then
NameNeu = NameNeu & LCase(Mid(NameZell, a, 1))
Else
NameNeu = NameNeu & UCase(Mid(NameZell, a, 1))
End If
Next a
Name = NameNeu
End Function


Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige