Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
612to616
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
612to616
612to616
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Farben-Array? Aufzählung vereinfachen

Farben-Array? Aufzählung vereinfachen
25.05.2005 06:47:26
Erich M.
Hallo EXCEL-Freunde,
möchte Zahlen von 1 bis 56 farblich kennzeichnen und habe derzeit folgende Lösung;
geht das auch einfacher / übersichtlicher (per ARRAY?):
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim RaBereich As Range, RaZelle As Range
' Bereich der Wirksamkeit
Set RaBereich = Range("B2:BS500")
For Each RaZelle In Range(Target.Address)
' überprüfen ob Zelle im vorgegebenen Bereich
If Not Intersect(RaZelle, RaBereich) Is Nothing Then
Select Case RaZelle.Value
Case 1
RaZelle.Interior.ColorIndex = 1
Case 2
RaZelle.Interior.ColorIndex = 2
Case 3
RaZelle.Interior.ColorIndex = 3
Case 4
RaZelle.Interior.ColorIndex = 4
Case 5
RaZelle.Interior.ColorIndex = 5
Case 6
RaZelle.Interior.ColorIndex = 6
Case 7
RaZelle.Interior.ColorIndex = 7
Case 8
RaZelle.Interior.ColorIndex = 8
Case 9
RaZelle.Interior.ColorIndex = 9
Case 10
RaZelle.Interior.ColorIndex = 10
Case 11
RaZelle.Interior.ColorIndex = 11
Case 12
RaZelle.Interior.ColorIndex = 12
Case 13
RaZelle.Interior.ColorIndex = 13
Case 14
RaZelle.Interior.ColorIndex = 14
Case 15
RaZelle.Interior.ColorIndex = 15
Case 16
RaZelle.Interior.ColorIndex = 16
Case 17
RaZelle.Interior.ColorIndex = 17
' Case 18 bis 56
' RaZelle.Interior.ColorIndex = ...
'' usw.
Case Else
RaZelle.Interior.ColorIndex = 0
End Select
End If
Next RaZelle
Set RaBereich = Nothing
End Sub

Code eingefügt mit: Excel Code Jeanie
Besten Dank für eine Hilfe!

mfg
Erich
EXCEL-Shareware und Freeware: http://www.toolex.de
EXCEL und Lottogewinne machen glücklich: http://48678.rapidforum.com

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

Betreff
Datum
Anwender
Anzeige
AW: Farben-Array? Aufzählung vereinfachen
25.05.2005 07:13:00
Hajo_Zi
Hallo Erich,
für select case

Sub TEst()
Dim Razelle As Range
If Razelle = Fix(Razelle) And Razelle > 0 And Razelle < 57 Then
Razelle.Interior.ColorIndex = Razelle
Else
RaZelle.Interior.ColorIndex = 0
End If
End Sub


Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem Windows 2000 SP4 und Excel Version 2000 SP3.


Anzeige
AW: Farben-Array? Aufzählung vereinfachen
25.05.2005 07:24:45
Erich M.
Hallo Hajo,
danke; es kommt leider Laufzeitfehler 91; Objektvariable oder With-Blockvariable nicht festgelegt?
Erkennen von Fix anscheinend nicht gewährleitstet; kann ich aber nicht korrigieren.
Besten Dank nochmal!
mfg
Erich
EXCEL-Shareware und Freeware: http://www.toolex.de
EXCEL und Lottogewinne machen glücklich: http://48678.rapidforum.com
AW: Farben-Array? Aufzählung vereinfachen
25.05.2005 07:31:52
Hajo_Zi
Hallo Erich,
Zahlen sind schon in den Zelle? Ansonsten davor Vergleicch Isnumeric.
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
Anzeige
AW: Farben-Array? Aufzählung vereinfachen
25.05.2005 20:59:47
Erich M.
Hallo Hajo,
die Zahlen sind schon in den Zellen; wenn ich anklicke kommt Fehlermeldung.
mfg
Erich
EXCEL-Shareware und Freeware: http://www.toolex.de
EXCEL und Lottogewinne machen glücklich: http://48678.rapidforum.com
AW: Farben-Array? Aufzählung vereinfachen
25.05.2005 21:02:24
Hajo_Zi
Hallo Erich,
lade doch mal ein Beispiel hoch
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
AW: Musterdatei
25.05.2005 21:29:54
Hajo_Zi
Hallo Erich,
ich kann den Fehler nicht simulieren. Kannst Du mal genauer schreiben wie das geht?
Option Explicit


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim RaBereich As Range, Razelle As Range ', 'Fix As Variant
'   Bereich der Wirksamkeit
Set RaBereich = Range("B2:BS50")
For Each Razelle In Range(Target.Address)
'       überprüfen ob Zelle im vorgegebenen Bereich
If Not Intersect(Razelle, RaBereich) Is Nothing Then
If IsNumeric(Razelle) Then
If Razelle = Fix(Razelle) And Razelle > 0 And Razelle < 57 Then
Razelle.Interior.ColorIndex = Razelle
Else
Razelle.Interior.ColorIndex = 0
End If
Else
Razelle.Interior.ColorIndex = 0
End If
End If
Next Razelle
'    ActiveSheet.Protect
Set RaBereich = Nothing
End Sub


ich würde aber eher

Private Sub Worksheet_Change(ByVal Target As Range)
benutzen, da sonst bei Zelländerung erst wieder die Zelle gewählt werden muß.
Gruß Hajo
<span style=" font-family:Arial,Arial; font-size:8pt;"><b>Das Forum lebt auch von den Rückmeldungen.</b></span>

Anzeige
Super!
25.05.2005 22:55:00
Erich M.
Hallo Hajo,
besten Dank für die Lösung und die Geduld. Den Hinweis mit der Alternative werde ich wohl
realisieren!!
mfg
Erich
EXCEL-Shareware und Freeware: http://www.toolex.de
EXCEL und Lottogewinne machen glücklich: http://48678.rapidforum.com

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige