rene1976
Goto Top

Wie kann man in Excel in einer Zelle alle Großbuchstaben finden und farbig machen?

Hallo,

wie kann man in Excel in Zellen alle Großbuchstaben finden und farbig machen?

Beispiel:
In der Zelle A1 steht z.B. MarkusSchneider
In der Zelle A2 steht z.B. FritzMeier

Die Großbuchstaben sollen rot werden, der rest bleibt schwarz.

Gibt es eine Formel / Funktion um alle beliebigen Großbuchstaben in einer Zelle zu finden.
Ich kenne die Formel
=(FINDEN("F";A1))
aber die sucht ja nach einem bestimmten Buchstaben.
Bei mir variiert die Anzahl und der Buchstabe in den Zellen.

Kann ich dann eine bedingte Formatierung mit der Formel machen und die Buchstaben z.B. rot einfärben?

Danke,

Rene

Content-Key: 295146

Url: https://administrator.de/contentid/295146

Ausgedruckt am: 19.03.2024 um 05:03 Uhr

Mitglied: colinardo
Lösung colinardo 04.02.2016, aktualisiert am 12.02.2016 um 12:39:41 Uhr
Goto Top
Hallo Rene,
ja kannst du mit einem kleinen Funktions-Makro das du dann als Formel benutzen kannst:
Public Function ColorUpperCase(rng As Range) As String
    Application.Volatile
    Set regex = CreateObject("vbscript.regexp"): regex.Pattern = "[\x41-\x5A\xC0-\xD6\xD9-\xDD]"  
    For i = 1 To rng.Characters.Count
        If regex.Test(rng.Characters(i, 1).Text) Then
            rng.Characters(i, 1).Font.Color = vbRed
        Else
            rng.Characters(i, 1).Font.Color = vbBlack
        End If
    Next
    Set regex = Nothing
    ColorUpperCase = ""  
End Function
Code in Modul kopieren

Das kannst du dann als Formel nutzen um z.B. Zelle A1 einzufärben, schreibst du in eine beliebige andere Zelle:
=ColorUpperCase(A1)
Grüße Uwe

Hinweis: Application.Volatile sollte man nur in Ausnahmefällen benutzen, das ist aber bei einer Makro-Funktion nötig um andere Zellen als die in welcher die Formel steht modifizieren zu können. Ansonsten kannst du das ganze ja auch an einen festen Bereich binden und es an einen Button oder ein Worksheet-Event binden (s. Demo-Sheet im Nachtrag).

Nachtrag:

Das ganze lässt sich für einen Bereich von Zellen auch automatisch durch das Makro erledigen, ohne Formel
Hier das Demo-Sheet:auto_color_cells_uppercase_chars_295146.xlsm
(In den farbigen Zellen werden nach Enter drücken in der Zelle die großen Buchstaben rot eingefärbt)
Mitglied: Rene1976
Rene1976 04.02.2016 um 15:41:21 Uhr
Goto Top
Hallo Colinardo,

danke für die schnelle Antwort.

Würde das auch irgendwie ohne Makro/Programmierung gehen?
Da die Excel Datei auf einem Server liegt bekommt man mit Makros immer die Sicherheitswarnung und muss das Makro erst aktivieren/zustimmen.

Lieber wäre mir eine Built-in Lösung.

Aber schon mal vielen Dank.
Das hilft schon weiter und ich werde es mal ausprobieren.

Gruß,

Rene
Mitglied: colinardo
Lösung colinardo 04.02.2016, aktualisiert am 12.02.2016 um 12:39:37 Uhr
Goto Top
Zitat von @Rene1976:
Würde das auch irgendwie ohne Makro/Programmierung gehen?
Nein. Die Frage wurde hier deswegen schon mal gestellt.
Mitglied: 114757
Lösung 114757 04.02.2016, aktualisiert am 12.02.2016 um 12:39:30 Uhr
Goto Top
Da die Excel Datei auf einem Server liegt bekommt man mit Makros immer die Sicherheitswarnung und muss das Makro erst aktivieren/zustimmen.
Das lässt sich abschalten und das Netzlaufwerk zur sicheren Zone hinzufügen, ebenso lassen sich Makros signieren und in Excel einstellen das nur signierte Makros ausgeführt werden dürfen. Dann laufen Makros auch für den User unsichtbar. Alles per GPO deploybar.
Das sollte also heutzutage kein Hinderungsgrund mehr sein.

Zitat von @colinardo:
Zitat von @Rene1976:
Würde das auch irgendwie ohne Makro/Programmierung gehen?
Nein. Die Frage wurde hier deswegen schon mal gestellt.
Da kann ich Uwe nur zustimmen.

Gruß jodel32
Mitglied: Rene1976
Rene1976 04.02.2016 um 23:07:17 Uhr
Goto Top
Hallo Colinardo,

dein Code funktioniert, danke.
Hab in dem Dokument noch andere Spalten, dort funktioniert der Code allerdings nicht.

Ich denke die Ursache ist, das die Werte dort
- alphanumerisch sind
- Formeln enthalten
=GROSS2(VERKETTEN(LINKS(B145;3);"Test123?!"))

Hab versucht das zu ändern zu:
=ColorUpperCase(GROSS2(VERKETTEN(LINKS(B145;3);"Test123?!")))
klappt aber nicht ;-(

Das Ergebnis der Spalte sieht so aus:
ProTest123?!

Es kommt immer #Wert - falscher Datentyp

Was mach ist falsch?

Jodel:
- Das lässt sich abschalten und das Netzlaufwerk zur sicheren Zone hinzufügen,
- ebenso lassen sich Makros signieren

Wie geht das?
Gibt´s dafür eine Anleitung?

Sorry bin leider keine Programmierer.

Gruß,

Rene
Mitglied: colinardo
Lösung colinardo 05.02.2016, aktualisiert am 12.02.2016 um 12:39:26 Uhr
Goto Top
Mit Zellen die Text aus Formeln zusammenbauen geht das Einfärben leider nicht, nur mit reinen Textzellen.
Als Workaround, siehe mein nachträglich oben verlinktes Demo-Sheet das eingegebene Formeln automatisch in reinen Text umwandelt.

- Das lässt sich abschalten und das Netzlaufwerk zur sicheren Zone hinzufügen,
- ebenso lassen sich Makros signieren
Siehe die Makro-Sicherheitseinstellungen im Sicherheitscenter der Excel Optionen von Excel.
Signieren lässt sich eine Arbeitsmappe im VBA-Editor unter Extras-Digitale Signatur.
Diese Einstellungen lassen sich per GPO mit den Administrative Templates für Office in der GPMC auf die Clients pushen.
https://technet.microsoft.com/en-us/library/ee857085.aspx
https://social.technet.microsoft.com/Forums/office/en-US/40067e2f-3714-4 ...
usw.

Grüße Uwe
Mitglied: Rene1976
Rene1976 05.02.2016 um 11:40:05 Uhr
Goto Top
Super vielen Dank schon wieder für die Tolle Hilfe face-wink

Hoffentlich ist damit der Tag gerettet und mein Chef kommt nicht noch auf ganz andere Ideen.

Schönes Wochenende

Rene