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

Zähler einbauen

Zähler einbauen
03.09.2014 14:09:07
Björn
Hallo,
ich habe eine Tabelle, bei der, wenn man eine Zelle per DropDown färbt, ein zugehöriges Blatt und eine zugehörige Form ebenfalls gefärbt werden.
Der Code dazu sieht wie folgt aus:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngFarbe As Long
Select Case Target.Address(False, False)
Case "C59"
lngFarbe = FuellFarbe(Target.Value)
With ActiveSheet.Shapes.Range(Array("Rectangle 7")).Fill
.Visible = msoTrue
.ForeColor.RGB = lngFarbe
.Transparency = 0
.Solid
End With
Worksheets("P1").Tab.Color = lngFarbe
Case "C60"
lngFarbe = FuellFarbe(Target.Value)
With ActiveSheet.Shapes.Range(Array("Rectangle 8")).Fill
.Visible = msoTrue
.ForeColor.RGB = lngFarbe
.Transparency = 0
.Solid
End With
Worksheets("P2").Tab.Color = lngFarbe
...

jetzt übertrage ich das auf einige andere Tabellen. Hier habe ich teilweise bis zu 100 Zellen für "Case". Leider wurden die Tabellen nicht so angelegt, dass diese immer bei beispielsweise A1 beginnen und bei A99 enden. Kann man einen Zähler einbauen, wo man nur den Bereich ändert/einfügt (Bsp. Range A1 bis A99) und in den einezelnen "Case-Blöcken" steht dann bei Case: Case "zaehler" statt Case "60" usw. So spart man sich zumindest diese Eingabe und kann sich auf die Zuweisung der Rechtecke und Blätter konzentrieren.
Grüße,
Björn

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zähler einbauen
03.09.2014 19:43:31
Frank
Hallo Björn,
m.E. geht das nicht und widerspricht auch dem Sinn von SELECT CASE. Der besteht u.a. darin, gezielt vorzugeben, wie bei konkreten Werten verfahren werden soll. Eine Variable enthält aber a priori keine konkreten Werte.
Eventuell hilft Dir, den Zellbezug umzurechnen (wenn ich Dich richtig verstanden habe, brauchst Du nur die Zeile). Ist also der Bereich A1-A99 und A13 wird gewählt, weist Du den Wert 13 einer Variablen zu (z.B. zaehler). Ist der Bereich C5-C104 und C13 wird gewählt, wäre das dann der Wert 9.
Dann prüfst Du SELECT CASE wie folgt

zaehler = GewaehlteZeile - BereichAnfangsZeile + 1
Select Case zaehler
Case 1
Case 2
Case Else
End select

Die einzelnen CASE-Blöcke musst Du aber wohl oder übel anlegen.
Es sei denn - das kommt aus Deinem Beispielcode nicht richtig raus - das, was zu tun ist, folgt einem Muster, das mit einer mathematischen Reihe abzubilden ist.
In Deinem Beispiel: C59 >> Rectangle 7; C60 >> Rectangle 8
Wenn das immer so ist, kann man sich evtl. das SELECT sparen und das Ganze in eine Sub ausgliedern, der dann nur noch der Zähler übergeben wird. Wobei ich hier nicht sicher bin, ob der Parameter auch als zusammengebastelter String a la "Rectangle" & zaehler akzeptiert wird.
Grüsse,
Frank
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige