Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1468to1472
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

Zellfarbe suchen und ersetzen

Zellfarbe suchen und ersetzen
15.01.2016 07:16:48
Walter

Hallo,
ich möchte in einer Tabelle Zellen die die Hintergrundfarbe rot haben durch weiß ersetzen. Da ich mich vorab schon schlau gemacht habe, habe ich auch schon eine kleine Prozedur dafür.
Allerdings bin ich damit nicht zu frieden, da sie sehr lange läuft bis sie zu Ende ist. Kann man die Laufzeit verkürzen? Vielleicht UsedRange durch einen definierten Bereich ersetzen? Wäre dankbar für Denkanstöße.
Sub FarbeÄndern()
Dim rng As Range
For Each rng In Worksheets("Tabelle1").UsedRange
If rng.Interior.ColorIndex = 3 Then rng.Interior.ColorIndex = 2
Next 'rng
End Sub

Gruß
Walter

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

Betreff
Datum
Anwender
Anzeige
Application.ScreenUpdating = False …
15.01.2016 08:10:33
RPP63
… dürfte Wunder bewirken, Walter.
Du könntest natürlich auch eine Union() bilden und "auf einen Rutsch" umfärben:
Sub FarbeÄndern()
Dim rng As Range, Bereich As Range
For Each rng In Worksheets("Tabelle1").UsedRange
If rng.Interior.ColorIndex = 3 Then
If Bereich Is Nothing Then Set Bereich = rng
Set Bereich = Union(Bereich, rng)
End If
Next 'rng
If Not Bereich Is Nothing Then Bereich.Interior.ColorIndex = xlNone
End Sub
Gruß Ralf

AW: Application.ScreenUpdating = False …
15.01.2016 10:43:26
Walter
Danke Euch Beiden für die Anregungen.
Bin jetzt fündig geworden. Die Prozedur läuft jetzt wesentlich schneller durch.
Vielen vielen Dank.
Gruß
Walter

Anzeige
AW: Zellfarbe suchen und ersetzen
15.01.2016 08:12:42
Nepumuk
Hallo,
so besser?
Public Sub ReplaceColor()
    Dim objCell As Range
    With Application.FindFormat
        Call .Clear
        .Interior.ColorIndex = 3
    End With
    Set objCell = Cells.Find(What:="", LookAt:=xlPart, SearchFormat:=True)
    If Not objCell Is Nothing Then
        Do
            objCell.Interior.ColorIndex = 2
            Set objCell = Cells.Find(What:="", LookAt:=xlPart, SearchFormat:=True)
        Loop Until objCell Is Nothing
    End If
End Sub

Gruß
Nepumuk

Anzeige
AW: Zellfarbe suchen und ersetzen
15.01.2016 10:42:19
Walter
Danke Euch Beiden für die Anregungen.
Bin jetzt fündig geworden. Die Prozedur läuft jetzt wesentlich schneller durch.
Vielen vielen Dank.
Gruß
Walter

nur nebenbei
15.01.2016 10:58:10
Rudi
Hallo,
der Colorindex hat relativ wenig mit der Farbe zu tun.
Bei mir ergibt der Colorindex 3 den RGB-Farbwert 169,188,192 und nicht rot RGB(255,0,0).
Gruß
Rudi

AW: nur nebenbei
15.01.2016 12:17:33
Walter
Hallo Rudi,
danke für Deine Anregung.
In der Hilfe hatte ich das anders aufgefasst.
Oder verstehe ich da was falsch?
Gruß
Walter
Beispiel
In diesem Beispiel wird die Farbe der Schriftart von Zelle A1 auf Sheet1 in die Farbe Rot geändert.
Visual Basic für Applikationen
Worksheets("Sheet1").Range("A1").Font.ColorIndex = 3

Anzeige
AW: nur nebenbei
15.01.2016 12:45:51
Rudi
Hallo,
das gilt für die Default-Arbeitsmappe.
Man hat aber die Möglichkeit, die Farbpalette anzupassen (z.B. für Corporate Design). Vor 2007 gab es dafür sogar einen Dialog. Wo der jetzt ist, weiß ich nicht. Wahrscheinlich entfallen.
Per VBA geht's aber immer noch.
z.B.
activeworkbook.colors(3) = rgb(150,50,0)

ändert von rot nach braun.
Mit
activecell.Interior.ColorIndex=3

färbst du dann die Zelle braun, nicht rot.
activecell.Interior.Color = RGB(255,0,0)

färbt sie weiterhin rot.
Deshalb arbeite ich immer mit Color und nie mit ColorIndex.
Die Farben werden mit der Mappe gespeichert.
Gruß
Rudi

Anzeige
AW: nur nebenbei
15.01.2016 13:11:11
Walter
Hallo Rudi,
habe ich jetzt verstanden.
Bedeutet im Standard ist Rot dem Interior.ColorIndex=3 zugewiesen
und bisher wurde noch keine andere Farbezuweisung getroffen. Kann aber passieren und dann läuft es schief.
Danke....
Gruß
Walter

321 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige