Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: automatisches ändern der Füllfarbe in Freihandform

automatisches ändern der Füllfarbe in Freihandform
14.11.2005 13:59:15
Markus
Hallo Helfende,
ich habe ein Problem. Ich habe mehrere Freihandformen und möchte das diese je nach dem Inhalt von einer dazugehörigen Zelle eine bestimmte Farbe haben. Wenn z. B. in Zelle A1 eine 1 steht, dann soll die Form blau sein, bei einer 2 soll sie rot sein.
Wie kann ich das Problem lösen? Ich habe ca. 100 Formen, die sich ändern könnten, also jede anklicken ist fast unmöglich.
Gruß
Markus
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: automatisches ändern der Füllfarbe in Freihandform
14.11.2005 15:30:23
Heiko
Hallo Markus,
so würde es schon mal für alle auf EINMAL gehen.

Sub FarbeAendern()
Dim shaFreeForm As Shape
If Range("A1") > 80 Then
MsgBox "Geben Sie in A1 eine Zahl zwischen 1 und 80 ein !", vbCritical
Exit Sub
End If
For Each shaFreeForm In ActiveSheet.Shapes
If shaFreeForm.AutoShapeType = 138 Then
shaFreeForm.Fill.ForeColor.SchemeColor = Range("A1")
End If
Next shaFreeForm
End Sub

Wenn du jeder Form eine eigne Zelle mit eigner Farbe zuweisen möchtest, dann geht das auch per Schleife. Dazu müßte ich aber wissen, wie die Form der Zelle zugeordnet ist.
Also z.B.
Zelle A1 = FreeForm1
Zelle A2 = FreeForm2
Zelle A3 = FreeForm3
...
Oder sind die Formen immer direkt an die Zelle angelehnt. Dann könnte man das über Shape.ButtonRightCell oder Shape.TopLeftCell auswerten.
Oder, oder, oder ...
Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: automatisches ändern der Füllfarbe in Freihandform
17.11.2005 12:04:55
Markus
Hallo Heiko,
danke für die erste Hilfe. Meine Formen sind jeweils einer spezifischen Zelle zugeordnet (wie in Deinem ersten Beispiel). Wenn Du also noch eine Idee für die Schleife hättest, dann wäre es toll.
Gruß
Markus
AW: automatisches ändern der Füllfarbe in Freihandform
17.11.2005 15:18:26
Heiko
Hallo Markus,
hatte schon gedacht du hättest das Interesse verloren, aber hier ne Möglichkeit.

Sub FarbeAendern()
Dim shaFreeForm As Shape
Dim lngLastRow As Long, lngFreeFormsCount As Long
lngLastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
lngFreeFormsCount = 0
For Each shaFreeForm In ActiveSheet.Shapes
If shaFreeForm.AutoShapeType = 138 Then
lngFreeFormsCount = lngFreeFormsCount + 1
End If
Next shaFreeForm
If lngFreeFormsCount > lngLastRow Then
MsgBox "Sie haben mehr FreeForms als Farbcodezeilen in Spalte A !", vbCritical
Exit Sub
End If
lngFreeFormsCount = 1
For Each shaFreeForm In ActiveSheet.Shapes
If shaFreeForm.AutoShapeType = 138 Then
shaFreeForm.Fill.ForeColor.SchemeColor = ActiveSheet.Cells(lngFreeFormsCount, 1)
lngFreeFormsCount = lngFreeFormsCount + 1
End If
Next shaFreeForm
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige