Anzeige
Archiv - Navigation
896to900
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
896to900
896to900
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Freihandform - bedingte Formatierung

Freihandform - bedingte Formatierung
22.08.2007 09:54:37
Roger
Hallo zusammen
über ein Makro kann ich Freihandformen bedingt formatieren. Dies funktioniert auch bestens, wenn ich die entsprechende Zelle manuell ansteuere, d.h., den Wert manuell eintrage. Sobald der Zellwert aber von einer anderen Zelle übernommen werden soll, welche ihrerseits mit WENN-Funktionen errechnet wird, funktioniert's nicht mehr.
Hier zur Verdeutlichung das Makro:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target = Range("A1") Then
ActiveSheet.Shapes("Freeform 1").Select
With Selection
.ShapeRange.Fill.ForeColor.SchemeColor = fctFarbe(Target.Value)
End With
Target.Select
End If
If Target = Range("A2") Then
ActiveSheet.Shapes("Freeform 2").Select
With Selection
.ShapeRange.Fill.ForeColor.SchemeColor = fctFarbe(Target.Value)
End With
Target.Select
End If
If Target = Range("A3") Then
ActiveSheet.Shapes("Freeform 9").Select
With Selection
.ShapeRange.Fill.ForeColor.SchemeColor = fctFarbe(Target.Value)
End With
Target.Select
End If
End Sub



Private Function fctFarbe(dblWert As Double) As Byte
Select Case dblWert
Case Is = 5
fctFarbe = 10
Case Is = 4
fctFarbe = 11
Case Is = 3
fctFarbe = 4
Case Is = 2
fctFarbe = 5
Case Is = 1
fctFarbe = 6
Case Else
fctFarbe = 9
End Select
End Function


Wäre toll, wenn jemand eine Idee hätte. Vielen Dank im voraus.
Roger

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Freihandform - bedingte Formatierung
22.08.2007 10:03:17
Beverly
Hi Roger,
das Worksheet_Change-Ereignis reagiert nur auf direkte Eingaben in der Tabelle. Du musst also diejenigen Zellen überwachen, die Veränderungen in der betreffenden Zelle mit der Formel bewirken.
________________________________________

AW: Freihandform - bedingte Formatierung
22.08.2007 10:34:38
Roger
Hallo Karin
besten Dank für Deinen Tipp. Was verstehst Du mit "überwachen"? Gibt es eine Möglichkeit, die Anpassung des Zellwertes als direkte Eingabe zu simulieren..?
Gruss Roger

AW: Freihandform - bedingte Formatierung
22.08.2007 10:54:00
Beverly
Hi Roger,
ich meine folgendes: z.B. deine Formel in C33 = A1+B1. Anstatt C33 als Target-Adresse zu nehmen (was ja nicht funktoniet, da dort keine Eingabe erfolgt), müssen A1 und B1 als Target-Adresse übewacht werden. Also sinngemäß

Select Case Target.Address
Case "$A$1", "$B$1"
' und hier dein Code zur Prüfung ob die Bedingung in C33 erfüllt ist
Case ....
' nächste Bedingung für nächste Zelle mit Formel
End Select


Bis später,
Karin

Anzeige
AW: Freihandform - bedingte Formatierung
22.08.2007 11:51:20
Roger
Hallo Karin
vielen Dank für Deine schnelle Reaktion. In Excel kenne ich mich relativ gut aus - in VBA praktisch nicht. Vielleicht noch dies: auch die Zellen "$A$1" und "$B$1" in Deinem Beispiel werden nicht manuell aktualisiert. Vielmehr werden die Werte einmal eingetragen.
Der Freeform (welche anschliessend auch automatisch formatiert werden soll) ist ein Makro zugewiesen, welches auf eine Zieladresse - z.B. A1 - WAHR oder FALSCH ausgibt - (mit Sub ändern). Nach diesem Vorgang wird in einer zweiten Zelle - z.B. A2 - die Zelle A1 auf WAHR oder FALSCH geprüft.
Beispiel für Zelle A2: =WENN(A1;WAHR;C33;0)
In Zelle A33 können z.B. die Werte 1 - 12 hinterlegt sein
Die Freeform soll nun je nach Zellinhalt von A2 automatisch formatiert werden. Der Farbcode ergibt sich aus dem Wert von Zelle A2...
Kann man dies mit Select Case Target. Address erreichen..? .. und wenn ja, wie würde die Bedingung integriert..?
Herzlichen Dank im voraus

Anzeige
AW: Freihandform - bedingte Formatierung
22.08.2007 12:26:00
Beverly
Hi Roger,
dein Hinweis, dass auch die Zellen A1 und B1 nicht durch direkte Eingabe geändert werden, war entscheidend - in diesem Fall kann man das Change-Ereignis überhaupt nicht verwenden. Du müsstest bereits in deinem Code der "Sub ändern", die der Freihandform zugewiesen ist, die Bedingungen prüfen. Der Code müsste dann in der Reihenfolge so ablaufen: Eintragen von WAHR oder FALSCH in A1 -&gt Prüfen ob Bedingung in A2 erfüllt -&gt Farbe entsprechend ändern.
Bis später,
Karin

AW: Freihandform - bedingte Formatierung
22.08.2007 13:49:32
Roger
Hallo Karin
Vielen Dank für Deine Infos, da kann ich meine seit Tagen dauernden Versuche einstellen.
Leider beschränken sich meine VBA-Kenntnisse im besten Fall darauf, bestehende Befehlszeilen auf meine Bedürfnisse anzupassen (z.B. das Abändern von Zellen..).
Dürfte ich Dir das bestehende Makro mit WAHR, FALSCH und der Ausgabe einer Info in eine weitere Zeile (hier ohne Einfluss) mal zur Ansicht durchgeben in der Hoffnung, dass Du es allenfalls um die Erweiterung der Füllfarbe für die Freeform mit 2 Farcode-Varianten ergänzen könntest..?
Das bestehende Makro sieht wie folgt aus:

Sub ändern001()
Dim zellwert As Boolean
Range("D8").Select
zellwert = ActiveCell.Value
ActiveCell.Value = zellwert = False
Range("A3").Select
ActiveCell.FormulaR1C1 = Range("F8")
Range("A3").Select
End Sub


.. die Zelle für den variablen Wert des Farbcodes wäre dann z.B. "C8".
Nochmals grössten Dank im voraus - Gruss Roger

Anzeige
AW: Freihandform - bedingte Formatierung
22.08.2007 15:48:02
Beverly
Hi Roger,
vielleicht ist es einfacher, wenn du deine Arbeiotsmappe mal hochlädtst, da kann ich das besser nachvollziehen, da ich ja nicht alle Bedingungen deiner Arbeitsmappe kenne.
Bis später,
Karin

AW: Freihandform - bedingte Formatierung
22.08.2007 16:15:02
Roger
Hallo Karin,
mache ich gerne.......
Gruss Roger

AW: Freihandform - bedingte Formatierung
22.08.2007 16:17:00
Roger
Hallo Karin
.. ich hoffe, das mit dem upload des files hat geklappt - ich sehe jedenfalls keine Bestätigung...
Gruss Roger

AW: Freihandform - bedingte Formatierung
22.08.2007 16:27:00
Beverly
Hi Roger,
nach dem Upload erhältst du eine Linkadresse. Die musst du kopieren, wieder in den Beitrag zurückgehen und sie dort einfügen. Dann den Beitrag abschicken.
Bis später,
Karin

Anzeige
AW: Freihandform - bedingte Formatierung
22.08.2007 18:29:43
Beverly
Hi Roger,
ich hoffe, ich habe alles richtig verstanden. Hier mal der Code für die Freihandform 3, der genaus so für die anderen gilt, nur dass dann die Zeile 6 in 7 und 8 umbenannt werden muss. Die Farbcodes musst du deinen Wünschen anpassen. Die Nummern kannst du in der VBA-Hilfe in der Farbtafel unter dem Stichwort PatternColorIndex finden.

Sub ändern001()
Range("D6") = Not Range("D6")
Range("A3") = Range("F6")
Range("A3").Select
Select Case Range("C6")
Case 1
ActiveSheet.Shapes("Freihandform 3").OLEFormat.Object.Interior.ColorIndex = 3
Case 2
ActiveSheet.Shapes("Freihandform 3").OLEFormat.Object.Interior.ColorIndex = 4
Case 3
ActiveSheet.Shapes("Freihandform 3").OLEFormat.Object.Interior.ColorIndex = 5
Case 4
ActiveSheet.Shapes("Freihandform 3").OLEFormat.Object.Interior.ColorIndex = 6
Case 5
ActiveSheet.Shapes("Freihandform 3").OLEFormat.Object.Interior.ColorIndex = 7
Case Else
ActiveSheet.Shapes("Freihandform 3").OLEFormat.Object.Interior.ColorIndex = xlNone
End Select
End Sub


Anzeige
AW: Freihandform - bedingte Formatierung
22.08.2007 19:37:28
Roger
Hi Karin - EINFACH GENIAL..!!!!
Herzlichen Dank für Deinen Support. Es funktioniert bestens..!!
Gruss Roger

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige