Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
932to936
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
932to936
932to936
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
VBA Farben für Zellen
19.12.2007 12:02:00
Manfred
Hallo Excellenten,
ich habe ein (für mich) größeres Problem.
Die Aufgaben: In einer Tabelle sollen die Zellen abhängig
von den Texten, die in den Zellen drin stehen gefärbt werden.
(es sind nur 6 verschiedene Texte, aber für bedingte Formatierung
eben zu viele).
Ich habe es schon geschaft mit einem Makro die Farben festzulegen
In etwa:
DIM CFLT as integer
CFLT = Range("A4").Interior.ColorIndex
usw.
Jetzt sollte ich ein Makro basteln, das
für den aktiven Bereich (wird mit der Maus vorher
angegeben) die entsprechende Hintergrundfarbe
vergibt.
In Worten:
In jeder der vorher markierten Zellen soll überprüft werden,
ob ein bestimmter Text drin steht und wenn dem so ist, soll
die entsprechende Hintergrundfarbe vergeben werden,
die ich im ersten Makro
ermittelt habe.
Habt Ihr eine Idee?
Ich freue mich auf Eure Rückmeldungen.
Manfred

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Farben für Zellen
19.12.2007 12:18:00
Rudi
Hallo,
etwa so:

Sub einfaerben()
Dim rngC As Range
Application.ScreenUpdating = False
For Each rngC In Selection
Select Case rngC.Value
Case "Text1": rnc.Interior.ColorIndex = 1
Case "Text2": rnc.Interior.ColorIndex = 10
Case "Text3": rnc.Interior.ColorIndex = 11
Case "Text11": rnc.Interior.ColorIndex = 12
Case "Text21": rnc.Interior.ColorIndex = 13
Case "Text31": rnc.Interior.ColorIndex = 14
End Select
Next rngC
Application.ScreenUpdating = True
End Sub


anstatt der Werte setzt du halt deine Variablen ein.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: VBA Farben für Zellen
19.12.2007 12:31:26
Manfred
Hallo Rudi,
mit ein paar Änderungen hat's im Prinzip geklappt.
"Statt rnc habe ich rngC eingesetzt".
Dafür schon mal vielen Dank.
Wenn ich "hinten" die Frab-Code-Zahlen eingebe, klappt es.
Wenn ich aber statt der Zahl meinen Variablen-Namen
eingebe, geht es nicht mehr.
So habe ich die Farben ermittelt:

Public Sub Farben_Feststellen2()
Dim CFLT As Integer
Dim CFL As Integer
Dim FL As Integer
Dim GLS As Integer
Dim HALC As Integer
Dim HALA As Integer
Dim LED As Integer
CFLT = Range("A4").Interior.ColorIndex
CFL = Range("A5").Interior.ColorIndex
FL = Range("A6").Interior.ColorIndex
GLS = Range("A7").Interior.ColorIndex
HALC = Range("A8").Interior.ColorIndex
HALA = Range("A9").Interior.ColorIndex
LED = Range("A10").Interior.ColorIndex
End Sub


Hast Du eine Idee, wie ich auch noch die
Variablen-Namen verwenden kann?
Manfred

Anzeige
AW: VBA Farben für Zellen
19.12.2007 12:39:33
Rudi
Hallo,
deklariere die Variablen als Public.
in einem allg. Modul, außerhalb einer Prozedur:

Public CFLT As Integer, CFL As Integer, FL As Integer, GLS As Integer, HALC As Integer, HALA As Integer, LED As Integer


oder setze das direkt ein.


Sub einfaerben()
Dim rngC As Range
Application.ScreenUpdating = False
For Each rngC In Selection
Select Case rngC.Value
Case "Text1": rnc.Interior.ColorIndex = Range("A4").Interior.ColorIndex
Case "Text2": rnc.Interior.ColorIndex = Range("A5").Interior.ColorIndex
Case "Text3": rnc.Interior.ColorIndex = Range("A6").Interior.ColorIndex
Case "Text4": rnc.Interior.ColorIndex = Range("A7").Interior.ColorIndex
Case "Text5": rnc.Interior.ColorIndex = Range("A8").Interior.ColorIndex
Case "Text6": rnc.Interior.ColorIndex = Range("A9").Interior.ColorIndex
End Select
Next rngC
Application.ScreenUpdating = True
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: VBA Farben für Zellen
19.12.2007 12:48:57
Manfred
Hallo Rudi,
die zweite Lösung mit dem "direkt reinschreiben"
ist mir sympathischer.
Da sich der einzufärbende Bereich aber auf einem
andere Tabellenblatt befindet (Tabelle1), als die Farbvorlage
(Tabelle3) müsste zu dem ..
Range("A4").Interior.ColorIndex
Noch irgendwie dazu, das sich diese Zelle auf einem anderen
Tabellenblatt befindet Tabelle3
Geht das?
Manfred

AW: VBA Farben für Zellen
19.12.2007 13:03:53
Rudi
Hallo,
dann machen wir das noch anders.

Sub einfaerben()
Dim rngC As Range, iColor(1 To 6) As Integer, i As Integer
Application.ScreenUpdating = False
For i = 1 To 6
iColor(i) = Sheets("Tabelle3").Cells(i + 3, 1).Interior.ColorIndex
Next i
For Each rngC In Selection
Select Case rngC.Value
Case "Text1": rngC.Interior.ColorIndex = iColor(1)
Case "Text2": rngC.Interior.ColorIndex = iColor(2)
Case "Text3": rngC.Interior.ColorIndex = iColor(3)
Case "Text4": rngC.Interior.ColorIndex = iColor(4)
Case "Text5": rngC.Interior.ColorIndex = iColor(5)
Case "Text6": rngC.Interior.ColorIndex = iColor(6)
End Select
Next rngC
Application.ScreenUpdating = True
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
Perfekt, Dank o.T.
19.12.2007 13:28:17
Manfred

AW: VBA Farben für Zellen
19.12.2007 12:52:07
Manfred
Hallo Rudi,
die zweite Lösung mit dem "direkt reinschreiben"
ist mir sympathischer.
Da sich der einzufärbende Bereich aber auf einem
andere Tabellenblatt befindet (Tabelle1), als die Farbvorlage
(Tabelle3) müsste zu dem ..
Range("A4").Interior.ColorIndex
Noch irgendwie dazu, das sich diese Zelle auf einem anderen
Tabellenblatt befindet Tabelle3
Geht das?
Manfred

AW: VBA Farben für Zellen
19.12.2007 12:22:55
Beverly
Hi Manfred,
versuche es so

Sub test()
Dim raZelle As Range
For Each raZelle In Selection
If raZelle = 11 Then raZelle.Interior.ColorIndex = Range("A1").Interior.ColorIndex
Next raZelle
End Sub


Anstelle 11 gibst du deinen Vergleichswert an.
________________________________________

Anzeige

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige