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

Hintergrundfarbe in Zahl umwandeln

Hintergrundfarbe in Zahl umwandeln
07.08.2008 19:30:00
Timo
Hallo zusammen.
Gibt es über VBA eine Möglichkeit, die Hintergrundfarbe einer Zelle in eine Zahl umzuwandeln und das schneller als mit for- Schleifen?
Habe einen Bereich ("J16:AG39"), wo ich per Zellaktivierung mit der Maus Zellen oder auch Zellbereiche mit einer Hintergrundfarbe versehen kann. Nun brauche ich ein Makro, was diesen Bereich ("J16:AG39") ausliest, die Farbe in einen Zahlenwert umwandelt (z.B. grün ="1") und mir diese Zahlenwerte woandershin kopiert.
Habe das Problem bereits mit zwei for- Schleifen gelöst, aber es ist sehr langsam. Könnte man diesen Zellbereich in ein Array laden, umwandeln und irgendwo die zahlenwerte wieder auf dem Blatt einfügen?

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hintergrundfarbe in Zahl umwandeln
07.08.2008 19:48:42
Tino
Hallo,
mir ist keine Möglichkeit bekannt,
alle Zellfarben eines Bereiches in einem Rutsch in eine Area einzulesen.
Was ich allerdings nicht verstehe wieso zwei Schleifen.
Eine müsste dies doch auch erledigen, Zellfarbe aus der Zelle lesen und gleich wo anders hinschreiben?
Hier mal zwei Beispiele, einmal mit ColorIndex und einmal mit Color.

Sub test_ColorIndex()
Dim A As Long
Dim Bereich As Range
For Each Bereich In Tabelle1.Range("J16:AG39")
A = A + 1
Tabelle2.Cells(A, 1) = Bereich.Interior.ColorIndex
Next Bereich
End Sub


Oder


Sub test_Color()
Dim A As Long
Dim Bereich As Range
For Each Bereich In Tabelle1.Range("J16:AG39")
A = A + 1
Tabelle2.Cells(A, 1) = Bereich.Interior.Color
Next Bereich
End Sub


Gruß Tino

Anzeige
AW: Hintergrundfarbe in Zahl umwandeln
07.08.2008 20:32:27
Uduuh
Hallo,
also lesen geht sehr schnell. Umgekehrt dürfte erheblich langsamer sein.

Sub tt()
Dim arrColors, i As Integer, j As Integer
arrColors = Range("j16:ag39")
For i = 1 To UBound(arrColors, 1)
For j = 1 To UBound(arrColors, 2)
arrColors(i, j) = Range("j16:ag39").Cells(i, j).Interior.ColorIndex
Next j
Next i
Sheets(2).Range("j16:ag39") = arrColors
End Sub


Gruß aus’m Pott
Udo

AW: Hintergrundfarbe in Zahl umwandeln
07.08.2008 22:53:00
Timo
Dank an euch beide. Hat mir beides etwas gebracht.

365 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige