Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Nach Farben sortieren





Frage

Hi Leute, habe auf meinem aktuellem Datenblatt immer eine bestimmte Farbe pro Zeile, die ich aber immer wieder von Hand ändere. Wie kann ich jetzt Excel dazu bringen das es nach Farben sortiert? z.B. Erst alle roten Zeilen, dann alle blauen und zum Schluß alle schwarzen. Ledglich die Schriftfarbe ist formatiert, der Zellenhintergrund ist immer weiß. Danke im Vorraus Micha

Antwort 1 von coros

Nabend Micha,

leider fehlen ein paar Infos, wie z.B. ab welcher Zeile die Daten mit der unterschiedlichen Schriftfarbe beginnen. Daher hier nur ein allgemeines Makro, was mit einer Hilfsspalte arbeitet. Das Makro liest die Schriftfarbe der Zellen in Spalte A ab Zeile 3 aus und führt diese in Spalte B auf. Danach könnte man dann nach den ermittelten Farbindexzahlen in Spalte B sortieren. Diese Hilfspalte könnte dann auch ausgeblendet werden. Nachfolgendes Makro kopiere in ein Standardmodul.

Sub Farbindex_Schriftfarbe_ermitteln()
Dim Zeile As Long
Zeile = Range("A65536").End(xlUp).Row
For Wiederholungen = 3 To Zeile
Cells(Wiederholungen, 2) = _
Cells(Wiederholungen, 1).Font.ColorIndex
Next
End Sub


Wenn der Farbindex in eine andere Spalte als B geschrieben werden sollen, dann muss in der Zeile

Cells(Wiederholungen, 2) = _

die Zahl in den Klammern geändert werden. Eine 1 steht für Spalte A, eine 2 für Spalte B, eine 3 für Spalte C usw.

Da ich nicht weiß, ob Du Dich mit VBA (Visual Basic) auskennst, kommt hier eine kurze Anweisung, wie Du den Code in Deine Tabelle bekommst.

1. Markiere die Anweisung aus diesem Beitrag und Kopiere (Strg c) diesen.

2. Klicke in Deiner Exceldatei in der Menüleiste nacheinander auf Extras => Makro => Visual Basic Editor oder drücke die Tastenkombination Alt F11

3. In dem neu geöffneten Fenster suche auf der linken Seite nach dem Eintrag VBA Projekt(Hier der Name Deiner Tabelle) und klicke doppelt auf diesen Eintrag

4. Klicke danach nacheinander in der Menüleiste auf Einfügen => Modul.

5. Füge nun die vorher kopierte Anweisung in das rechte leere Fenster ein.

Aufrufen kann man so ein Makro z.B. über eine Schaltfläche. Da ich nicht weiß, ob Du weißt, wie man eine Befehlsschaltfläche in ein Tabellenblatt einfügst, kommt hier eine kurze Anweisung.

1. Gehe in der Menüleiste auf Ansicht => Symbolleiste => Steuerelement-Toolbox

2. Klicke auf die 6.Schaltfläche von links (Schaltflächenkommentar: Befehlsschaltfläche)

3. Positioniere die Schaltfläche in Deinem Tabellenblatt und passe gegebenenfalls die Größe an.

4. Klicke in der Symbolleiste auf die 3.Schaltfläche von links (Schaltflächenkommentar: Code anzeigen).

5. In das geöffnete Fenster schreibst Du zwischen die Texte “Private Sub CommandButton1_Click()“ und “End Sub“ in die Leerzeile Call Makroname oder nur der Makroname.

6. Klicke in der Symbolleiste auf die erste Schaltfläche von links um den Entwurfmodus zu beenden (Schaltflächenkommentar: Entwurfmodus beenden).

Wenn Du alles richtig gemacht hast, sollte das Makro, nachdem Du die Schaltfläche betätigt hast, abgearbeitet werden.

Du solltest zum Abschluss noch die Sicherheitseinstellung, die beim Öffnen der Datei abgefragt wird, kontrollieren. Klicke dazu nacheinander in der Menüleiste wieder auf Extras => Makro und dann auf Sicherheit.... Gehe, falls nicht schon angezeigt, auf die Registerkarte Sicherheitsstufe und schaue dort nach, ob die Einstellung Mittel aktiviert ist. Wenn nicht, aktiviere diese Einstellung, da sonst der Code nicht ausgeführt werden kann. Beim nächsten Öffnen Deiner Datei kommt eine Abfrage, ob Makros aktiviert oder deaktiviert werden sollen. Klicke auf aktivieren und der Code wird ausgeführt.

Ich hoffe, Du kommst klar. bei Problemen oder Fragen, melde Dich wieder.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von LowNoise

SPITZENMÄßIGE ANLEITUNG !!!

Hat super funktioniert. Danke.

PS: Hab VBA vor 6 oder 8 Jahren mal in der Schule gehabt, so viel ist noch hängen geblieben um sich da durch zu finden ;-)

Antwort 3 von coros

Hi Micha,

freut mich, das meine Lösung die Rrichtige war. Danke auch für die Rückmeldung.

MfG,
coros
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.

Antwort 4 von Hawk601

Hi Coros,

ich muss mich LowNoise anschließen:

SPITZEN ANLEITUNG!!!

Hab die Anleitung "ergoogelt" und sie trifft genau auf mein Problem zu.

Ich hab noch nie was mit VBA gemacht, aber nach Deiner Anleitung und der Erklärung hat es super geklappt.

Bis dann,

Hawk601

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: