Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1924to1928
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
Inhaltsverzeichnis

Großschreiben n. d. Verlassen der Zelle

Großschreiben n. d. Verlassen der Zelle
22.03.2023 11:45:39
Lilli

Hallo Zusammen,

ich bräuchte bitte Hilfe in VBA. Ich schreibe die Nummern von einem Artikel. Die Artikelnummer beinhaltet Zahlen und Buchstaben. Buchstaben müssen aber alle großgeschrieben sein.

in der Tabelle habe ich einige Spalten gelb markiert. Ich bräuchte bitte Hilfe, dass wenn ich in den gelben Spalten etwas reinschreibe, dass es großgeschrieben wird, wenn ich per Tab zum nächsten Spalte gehe.

https://www.herber.de/bbs/user/158362.xlsm

Wenn die Möglichkeit bestünde, schreibt mir bitte, wo ich den VBA-Code reintun soll? Wenn der Code kommentiert werden könnte, wäre ich auch sehr dankbar darüber. Ich verstehe zwar nicht viel, dann könnte ich vielleicht noch mal nutzen, wenn ich weiß, dass man da oder da nur die Spaltennamen oder Spaltennummer ändern sollte.

Vielen Dank für die Mühe und Feedback im Voraus.

Liebe Grüße
Lilli

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Großschreiben n. d. Verlassen der Zelle
22.03.2023 11:52:48
Klexy
Such dir hier was aus:

Sub Schrift_GROSS_Normal()

Dim objZelle As Range
    For Each objZelle In Selection.Cells
        If objZelle > "" Then
            Select Case True
                Case objZelle = UCase(objZelle) ' GROSS
                    objZelle = Application.Proper(objZelle) ' Normal
            End Select
        End If
    Next objZelle

End Sub


Sub Gross_Klein_Toggle_Schalter()
    ' original **-Makro
Dim zelle As Range
    For Each zelle In Selection.Cells
        ' For Each zelle In Rows("1:1").Cells
        Select Case True
            Case zelle = LCase(zelle) ' lowercase --> ALLCAPS
                ' zelle = UCase(zelle)
                zelle = UCase(zelle)
            Case zelle = UCase(zelle) ' ALLCAPS --> Normal
                ' zelle = Application.Proper(zelle)
                zelle = LCase(zelle)
            Case Else
                zelle = LCase(zelle) ' Normal --> lowercase
        End Select
    Next zelle
End Sub

Sub Schrift_DOppelgroß_Normal()
Dim objZelle As Range
    For Each objZelle In Selection.Cells
        If objZelle > "" Then
            Select Case True
                Case objZelle = LCase(objZelle)
                    objZelle = UCase(objZelle)
                Case objZelle = UCase(objZelle)
                    objZelle = Application.Proper(objZelle)
                Case Else
                    objZelle = LCase(objZelle)
            End Select
            Select Case True
                Case objZelle = LCase(objZelle)
                    objZelle = UCase(objZelle)
                Case objZelle = UCase(objZelle)
                    objZelle = Application.Proper(objZelle)
                Case Else
                    objZelle = LCase(objZelle)
            End Select
            Select Case True
                Case objZelle = LCase(objZelle)
                    objZelle = UCase(objZelle)
                Case objZelle = UCase(objZelle)
                    objZelle = Application.Proper(objZelle)
                Case Else
                    objZelle = LCase(objZelle)
            End Select
        End If
    Next objZelle
End Sub


Sub Schrift_klein_Normal()
Dim objZelle As Range
    For Each objZelle In Selection.Cells
        If objZelle > "" Then
            Select Case True
                Case objZelle = LCase(objZelle) ' klein
                    objZelle = Application.Proper(objZelle) ' Normal
            End Select
        End If
    Next objZelle
End Sub

Sub Schrift_Normal_GROSS()
Dim objZelle As Range
    For Each objZelle In Selection.Cells
        If objZelle > "" Then
            Select Case True
                Case objZelle = Application.Proper(objZelle) ' Normal
                    objZelle = UCase(objZelle) ' GROSS
            End Select
        End If
    Next objZelle
End Sub
Sub Schrift_Normal_klein()
Dim objZelle As Range
    For Each objZelle In Selection.Cells
        If objZelle > "" Then
            Select Case True
                Case objZelle = Application.Proper(objZelle) ' Normal
                    objZelle = LCase(objZelle) ' klein
            End Select
        End If
    Next objZelle
End Sub
Sub Schrift_klein_GROSS()
Dim objZelle As Range
    For Each objZelle In Selection.Cells
        If objZelle > "" Then
            Select Case True
                Case objZelle = LCase(objZelle) ' klein
                    objZelle = UCase(objZelle) ' GROSS
            End Select
        End If
    Next objZelle
End Sub
Sub Schrift_GROSS_klein()
Dim objZelle As Range
    For Each objZelle In Selection.Cells
        If objZelle > "" Then
            Select Case True
                Case objZelle = UCase(objZelle) ' GROSS
                    objZelle = LCase(objZelle) ' klein
            End Select
        End If
    Next objZelle
End Sub
Sub Schrift_GROSS()
Dim objZelle As Range
    For Each objZelle In Selection.Cells
        If objZelle > "" Then
            objZelle = UCase(objZelle) ' GROSS
        End If
    Next objZelle
End Sub


Anzeige
AW: Großschreiben n. d. Verlassen der Zelle
22.03.2023 14:49:49
Lilli
Hallo Klexy,

vielen Dank für die große Auswahl. Darf ich Dich bitten mir kurz zu skizzieren, welches Code was macht bitte? Vielleicht kann ich irgendetwas für etwas anders gebrauchen. Wie erkennen die Module, welche Spalte angesprochen werden soll?

Vielen Dank für Dein Feedback im Voraus.

Liebe Grüße,
Lilli


AW: Großschreiben n. d. Verlassen der Zelle
23.03.2023 11:58:21
Klexy
Die Bedeutung liegt in der Überschrift GROSS_Normal änder eine DURCHGEHENDE GROSSSCHREIBUNG in Jedes Wort MIt Großem Anfangsbuchstaben, usw.
Probier es einfach mal aus. Ist selbsterklärend.
Und angesprochen wird das, was grad markiert ist (In Selection.Cells)

Hier nochmal mit sprechenden Variablennamen und ausführlicher Kommentierung
Sub Schrift_GROSS_Normal()

Dim Zelle As Range
    For Each Zelle In Selection.Cells
        If Zelle > "" Then
            Select Case True
                Case Zelle = UCase(Zelle) ' GROSS
                    Zelle = Application.Proper(Zelle) ' Normal
            End Select
        End If
    Next Zelle

End Sub

Sub Gross_Klein_Toggle_Schalter()
Dim Zelle As Range
    For Each Zelle In Selection.Cells
        Select Case True
            Case Zelle = LCase(Zelle) ' lowercase --> ALLCAPS
                Zelle = UCase(Zelle)
            Case Zelle = UCase(Zelle) ' ALLCAPS --> Normal
                Zelle = LCase(Zelle)
            Case Else
                Zelle = LCase(Zelle) ' Normal --> lowercase
        End Select
    Next Zelle
End Sub

Sub Schrift_DOppelgroß_Normal()
Dim Zelle As Range
    For Each Zelle In Selection.Cells
        If Zelle > "" Then
            Select Case True
                Case Zelle = LCase(Zelle) ' klein
                    Zelle = UCase(Zelle) ' GROSS
                Case Zelle = UCase(Zelle) ' GROSS
                    Zelle = Application.Proper(Zelle) ' Normal
                Case Else
                    Zelle = LCase(Zelle) ' klein
            End Select
            Select Case True
                Case Zelle = LCase(Zelle) ' klein
                    Zelle = UCase(Zelle) ' GROSS
                Case Zelle = UCase(Zelle) ' GROSS
                    Zelle = Application.Proper(Zelle) ' Normal
                Case Else
                    Zelle = LCase(Zelle)
            End Select
            Select Case True
                Case Zelle = LCase(Zelle) ' klein
                    Zelle = UCase(Zelle) ' GROSS
                Case Zelle = UCase(Zelle) ' GROSS
                    Zelle = Application.Proper(Zelle) ' Normal
                Case Else
                    Zelle = LCase(Zelle) ' klein
            End Select
        End If
    Next Zelle
End Sub

Sub Schrift_klein_Normal()
Dim Zelle As Range
    For Each Zelle In Selection.Cells
        If Zelle > "" Then
            Select Case True
                Case Zelle = LCase(Zelle) ' klein
                    Zelle = Application.Proper(Zelle) ' Normal
            End Select
        End If
    Next Zelle
End Sub

Sub Schrift_Normal_GROSS()
Dim Zelle As Range
    For Each Zelle In Selection.Cells
        If Zelle > "" Then
            Select Case True
                Case Zelle = Application.Proper(Zelle) ' Normal
                    Zelle = UCase(Zelle) ' GROSS
            End Select
        End If
    Next Zelle
End Sub

Sub Schrift_Normal_klein()
Dim Zelle As Range
    For Each Zelle In Selection.Cells
        If Zelle > "" Then
            Select Case True
                Case Zelle = Application.Proper(Zelle) ' Normal
                    Zelle = LCase(Zelle) ' klein
            End Select
        End If
    Next Zelle
End Sub

Sub Schrift_klein_GROSS()
Dim Zelle As Range
    For Each Zelle In Selection.Cells
        If Zelle > "" Then
            Select Case True
                Case Zelle = LCase(Zelle) ' klein
                    Zelle = UCase(Zelle) ' GROSS
            End Select
        End If
    Next Zelle
End Sub

Sub Schrift_GROSS_klein()
Dim Zelle As Range
    For Each Zelle In Selection.Cells
        If Zelle > "" Then
            Select Case True
                Case Zelle = UCase(Zelle) ' GROSS
                    Zelle = LCase(Zelle) ' klein
            End Select
        End If
    Next Zelle
End Sub

Sub Schrift_GROSS()
Dim Zelle As Range
    For Each Zelle In Selection.Cells
        If Zelle > "" Then
            Zelle = UCase(Zelle) ' GROSS
        End If
    Next Zelle
End Sub


Anzeige
AW: Großschreiben n. d. Verlassen der Zelle
22.03.2023 11:54:49
Mathias
Hallo Lilli,
das kannst du mir einem kleinen Code realisieren.
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Interior.ColorIndex = 6 Then
        Target.Value = UCase(Target.Text)
    End If
End Sub
Der Code wird automatisch gestartet, wenn du einen Text änderst (nach dem Verlassen der Zelle)
Wenn die Farbe den Index 6 hat (Standard Geld) dann wird der Text in groß gewandelt
Wenn du eine andere Farbe verwenden möchtest, musst du die Nummer ändern.
Liebe Grüße
Mathias


AW: Großschreiben n. d. Verlassen der Zelle
22.03.2023 14:53:10
Lilli
Hallo Mathias,

vielen Dank für Dein Feedback.
Die gelbe Spalte habe ich nur gemacht, um die Personen zu zeigen, die mir helfen mögen, welche Spalte ich meine. Die Spalten werden keinen gelben Hintergrund haben. Es tut mir leid, dass es meinerseits nicht so deutlich rüberbringen konnte.

Viele Grüße,
Lilli


Anzeige
AW: Großschreiben n. d. Verlassen der Zelle
22.03.2023 11:57:18
Daniel
Hi
du brauchst diesen Code im Modul des Tabellenblatts (Modul "Tabelle1")

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Dim Zelle As Range

Set Bereich = Range("Tabelle1[Spalte2],Tabelle1[Spalte5],Tabelle1[Spalte8]")

If Not Intersect(Bereich, Target) Is Nothing Then
    For Each Zelle In Intersect(Bereich, Target).Cells
        If VarType(Zelle) = vbString Then
            Application.EnableEvents = False
            Zelle.Value = UCase(Zelle.Value)
            Application.EnableEvents = True
        End If
    Next
End If

End Sub
das Change-Event läuft automatisch ab, sobald du in diesem Tabellenblatt einen Zellwert oder eine Formel änderst, dh dann wird dieses Makro ausgeführt.
in der Range-Variablen Target sind die geänderten Zellen hinterlegt.
Das Application.EnableEvents = False verhindert, dass sich das Makro selbst aufruft, wenn du den neuen Zellwert in die Zelle zurückschreibst.
der Rest sollte eigentlich selbsterklärend sein.

Gruß Daniel


Anzeige
AW: Großschreiben n. d. Verlassen der Zelle
22.03.2023 14:56:46
Lilli
Hallo Daniel,

vielen Dank für Dein Feedback.

Ich habe den Code kopiert und getestet. Es funktioniert einwandfrei. Vielen, vielen Dank für Deine Hilfe. Das ist auch sehr schön, dass man verschiedene Spalten eingeben kann.

Vielen lieben Dank noch mal. :)

Liebe Grüße,
Lilli

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige