Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
348to352
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
348to352
348to352
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Farbwerte aus Datenfeld an Range übergeben

Farbwerte aus Datenfeld an Range übergeben
10.12.2003 20:03:56
RainerW
Einen schönen guten Abend alle zusammen!

"VBA nein" stimmt nicht ganz - aber es kein anderer Eintrag für mich vorhanden.

zu meinem Anliegen:
Ich habe in einem Datenfeld Farbwerte gespeichert.
Diese Farbwerte möchte ich in die Zellen eintragen,
es sollen aber nicht die Nummern, sondern die entsprechenden Füllfarben
in den Zellen erscheinen.

Ist die Zeile
'r.Interior.ColorIndex = zelle
aktiv, wird immer nur der erste Farbwert in ALLE drei Zellen eingetragen.

Es wäre nett, wenn mir jemand auf die Sprünge helfen könnte.

Feierabendliche Grüße
Rainer


Private Sub ErmittelFarbWerte()
Dim r As Range, r1 As Range, r2 As Range
Dim i As Long
Dim zelle(1 To 3) As Byte
zelle(1) = 3  ' Rot
zelle(2) = 4  ' Grün
zelle(3) = 5  ' Blau
Set r1 = Worksheets("Tabelle1").Cells(2, 2)
Set r2 = r1.Offset(0, 2)
Set r = Worksheets("Tabelle1").Range(r1, r2)
'r.Interior.ColorIndex = zelle  ' hier werden alle 3 Zellen rot ( ich auch langsam :-) )
r = zelle                       ' hier werden die korrekten Farbwerte eingetragen
End Sub
'So klappt es - ist aber bei 20 Farben für den Zellzeiger zu langsam
' In jede Zelle wieder die alte Füllfarbe eintragen
For i = 1 To 3
Cells(2, i).Interior.ColorIndex = Zelle(i)
Next i

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
noch offen
11.12.2003 03:14:28
Reinhard
Hallo Rainer,
einen direkten Weg über zelle()-Daenfeld die Farben zu ändern fand ich nicht, deshalb Beteff 'noch offen'.
Aber wegen "...ist aber bei 20 Farben für den Zellzeiger zu langsam ..." mutmaße ich du wilst mit einem Befehl einem größeren Range , zum Beispiel:
Set r = WS.Range(Cells(2, 2), Cells(200, 2).Offset(0, 2))
Farben zuweisen ohne per Schleife die Zellen abzuklappern.
Probier halt mal kein Datenfeld sondern Hilfszellen farbig zu markieren, dann diesen Hilsbereich mit spezialpaste reinzukopieren.
Gruß
Reinhard

Option Explicit

Sub tt()
Dim r As Range
Dim WS As Worksheet
Set WS = Worksheets("Tabelle1")
Set r = WS.Range(Cells(2, 2), Cells(2, 2).Offset(0, 2))
WS.Cells(2, 254).Interior.ColorIndex = 3
WS.Cells(2, 255).Interior.ColorIndex = 4
WS.Cells(2, 256).Interior.ColorIndex = 5
WS.Range(Cells(2, 254), Cells(2, 256)).Copy
r.PasteSpecial Paste:=xlFormats
Application.CutCopyMode = False
End Sub


Anzeige
AW: noch offen
11.12.2003 09:32:08
RainerW
Hallo Reinhard,

vielen Dank für deine Hilfe und deinen Beispiel-Code.
Du hast recht mit deiner Vermutung;
Die Zeile der aktiven Zelle wird immer gelb markiert, so wie in einem
Listenfeld die aktive Zeile immer blau ist. Da nun aber Füllfarben in der
entspechenden Zeile sein können, muss ich sie speichern und wenn der
Zeilzeiger in einer anderen Zeile alles Gelb macht, muss die vorherige
Zeile natürlich wieder ihre alten Farben zurückerhalten.
Lese ich die Farben über eine Schleife ein - dann wird der Zellzeiger
bei Druck auf die PfeilNachUnten-Taste sehr sehr träge. So wie ich mir das
vorstelle ist es vier Mal schneller.

Gruß Rainer
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige