Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Nach Schriftfarbe suchen

Nach Schriftfarbe suchen
Jockel
Hallo,
ich habe in einer Mappe zwei Tabellenblätter, die in Prinzip jeweils die gleichen Daten beinhalten, nur mit dem Unterschied, auf dem ersten Tabellenblatt sind in der Spalte A manche Einträge farblich rot markiert, auf dem zweiten Tabellenblatt ist dies nicht der Fall.
Einträge sehen so aus:
A____
GD1234
RF4321
GF8761
Kann ich nun per Makro die Spalte A im ersten Tabellenblatt durchlaufen, überprüfen, in welchen Zellen ist die schriftart ROT und dann diese entsprechenden Einträge auf dem zweiten Tabellenblatt ebenfalls in der Spalte A Schriftart rot zu machen ?
Dankee mal
Jockel
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Nach Schriftfarbe suchen
22.10.2010 08:58:26
selli
hallo jockel,
wenn die rote farbe aus einer bedingten formatierung kommt, kannst du diese formel ja zu deiner suche heranziehen.
wurde die rotfärbung per hand ausgelöst geht das nur mit vba.
gruß selli
AW: Nach Schriftfarbe suchen
22.10.2010 09:09:13
Jockel
Hi,
nein, das ist keine bedingte Formatierung, die wurden manuell gesetzt.
Gruß
Jockel
Anzeige
AW: Nach Schriftfarbe suchen
22.10.2010 09:24:46
urmila
Hallo Jockel,
versuchs mal hiermit....
Dim x As Integer
For x = 1 To 100
If Sheets("Tabelle1").Cells(x, 1).Interior.ColorIndex = 3 Then
Sheets("Tabelle2").Cells(x, 1).Interior.ColorIndex = 3
Else
Sheets("Tabelle2").Cells(x, 1).Interior.ColorIndex = xlNone
'Falls die Farbe sein soll wie im Tabellenblatt 1, dann "xlNone" durch dies hier
'ersetzen: Sheets("Tabelle1").Cells(x, 1).Interior.ColorIndex
End If
Next
Rückmeldung wäre nett.
LG
Urmila
Anzeige
AW: Nach Schriftfarbe suchen
22.10.2010 10:01:54
hary
Hallo
@Urmila: Jockel moechte die Schriftfarbe.
Teste mal so:

Dim x As Integer
For x = 1 To 100
If Sheets("Tabelle1").Cells(x, 1).Font.Color = vbRed Then
Sheets("Tabelle2").Cells(x, 1).Font.Color = vbRed
Else
Sheets("Tabelle2").Cells(x, 1).Font.Color = vbBlack
End If
Next

gruss hary
Anzeige
autsch, meinte ich doch :)
22.10.2010 10:07:57
urmila
Urmila
AW: Nach Schriftfarbe suchen
22.10.2010 13:10:58
Jockel
Hallo Harry,
kann es sein, dass ser Code nicht nach den Einträgen schaut, sondern sich an der Position orientiert. Habe folgendes Problem:
Tabelle 1
BF1234
BF1234
BF1234
CD4321
BN3451
BN3451...
Tabelle 2
BF1234 farblich
CD4321 farblich
BN3451 farblich
GR1254
UM8521
CG4521
Wenn es , wie hier vorkommt, dass in der Tabelle1 zB 3 gleiche DS nacheinander vorkommen, dann werden auch in der Tabelle 2 drei DS nach dem ersten DS farblich markiert, auch wenn sie nicht dem Eintrag aus Tabelle1 entsprechen.
Kann man das ändern ?
Danke
Gruß
Jockel
Anzeige
AW: Nach Schriftfarbe suchen
22.10.2010 14:49:17
hary
Hallo
evtl. gehts auch eleganter, aber er tut's.

Sub farbe()
Dim x As Integer
Dim zelle As Range
With Sheets("Tabelle1")
Sheets("Tabelle2").Range("A:A").Font.Color = vbBlack
For x = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
If .Cells(x, 1).Font.Color = vbRed Then
Set zelle = Sheets("Tabelle2").Range("A1:A" & Sheets("Tabelle2").Cells(Rows.Count,  _
1).End(xlUp).Row).Find(what:=.Cells(x, 1).Value, Lookat:=xlWhole, LookIn:=xlValues)
If Not zelle Is Nothing Then zelle.Font.Color = vbRed
End If
Next
End With
Set Zelle = Nothing
End Sub

gruss hary
Anzeige
geht auch ohne VBA ...
22.10.2010 10:49:07
Klaus
... allerdings mit Hilfsspalte und Excel4-Makro über Namensvergabe. Schau dir mal diesen Thread an, da wirds beschrieben:
http://www.office-loesung.de/ftopic116971_0_0_asc.php
Über die Hilfsspalte kannst du dann das zweite Tabellenblatt bedingt formatieren.
Grüße,
Klaus M.vdT.
(die VBA-Lösung halte ich aber für eleganter)
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Nach Schriftfarbe suchen in Excel


Schritt-für-Schritt-Anleitung

Um in Excel nach Schriftfarbe zu suchen und diese auf einem anderen Tabellenblatt anzuwenden, kannst Du ein VBA-Skript verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Deine Excel-Datei mit den beiden Tabellenblättern.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  4. Kopiere und füge den folgenden Code in das Modul ein:

    Sub SchriftfarbeUebertragen()
       Dim x As Integer
       Dim zelle As Range
       With Sheets("Tabelle1")
           Sheets("Tabelle2").Range("A:A").Font.Color = vbBlack
           For x = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
               If .Cells(x, 1).Font.Color = vbRed Then
                   Set zelle = Sheets("Tabelle2").Range("A1:A" & Sheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Row).Find(what:=.Cells(x, 1).Value, Lookat:=xlWhole, LookIn:=xlValues)
                   If Not zelle Is Nothing Then zelle.Font.Color = vbRed
               End If
           Next
       End With
       Set zelle = Nothing
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Drücke ALT + F8, wähle SchriftfarbeUebertragen aus der Liste aus und klicke auf Ausführen.

Dieses Skript überprüft die Schriftfarbe in der Spalte A von Tabelle1 und überträgt die rote Schriftfarbe auf die entsprechenden Einträge in Tabelle2.


Häufige Fehler und Lösungen

  • Problem: Die Schriftfarbe wird nicht korrekt übertragen.

    • Lösung: Stelle sicher, dass die Schriftfarbe in Tabelle1 tatsächlich rot ist (RGB-Wert 255,0,0). Überprüfe auch, ob die Einträge in beiden Tabellenblättern übereinstimmen.
  • Problem: Das Skript läuft nicht.

    • Lösung: Überprüfe, ob Du die Makros in Excel aktiviert hast. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen und aktiviere die Option für Makros.

Alternative Methoden

Wenn Du kein VBA verwenden möchtest, gibt es auch alternative Methoden:

  1. Hilfsspalte: Du kannst eine Hilfsspalte erstellen, die die Schriftfarbe überprüft. Nutze die FINDEN-Funktion, um die Einträge zu vergleichen und die Schriftfarben manuell zu setzen.

  2. Bedingte Formatierung: Wenn die Daten in Tabelle2 immer die gleichen sind, kannst Du die bedingte Formatierung in Excel verwenden, um die Schriftfarbe basierend auf den Werten aus Tabelle1 dynamisch anzupassen.


Praktische Beispiele

  • Beispiel 1: Angenommen, Du hast in Tabelle1 die folgenden Daten:

    A
    -----
    BF1234 (rot)
    CD4321 (schwarz)
    BN3451 (rot)

    Nach dem Ausführen des Skripts wird Tabelle2 wie folgt aussehen:

    A
    -----
    BF1234 (rot)
    CD4321 (schwarz)
    BN3451 (rot)
  • Beispiel 2: Wenn Du verschiedene Schriftfarben hast und nur die rote Schrift (HTML: #FF0000, vbRed) übertragen möchtest, passt das Skript perfekt.


Tipps für Profis

  • Fehlerbehebungen: Nutze die Debug-Option im VBA-Editor, um potenzielle Fehler im Code zu identifizieren.
  • Optimierung: Anstatt die gesamte Spalte zu durchsuchen, beschränke den Bereich, um die Leistung zu verbessern.
  • Dokumentation: Kommentiere Deinen Code gut, damit Du später leicht verstehen kannst, was jeder Teil des Codes macht.

FAQ: Häufige Fragen

1. Wie kann ich die Schriftfarbe auf rotem Hintergrund anpassen? Du kannst die Schriftfarbe in der Zelle manuell anpassen, indem Du die Formatierungsoptionen in Excel verwendest.

2. Funktioniert das auch in Excel für Mac? Ja, das VBA-Skript sollte auch in der Mac-Version von Excel funktionieren, solange Du die Makros aktivierst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige