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

Bedingte Formatierung einer Form per VBA

Bedingte Formatierung einer Form per VBA
01.07.2023 10:23:41
Frank

Guten Morgen allerseits,
nachdem ich gedacht habe, dieses Problem wäre gelöst, entpuppt sich die "bedingte" Formatierung eines abgerundeten Rechtecks mittel VBA zu meinem größten Sorgenkind. In der Original-Datei hat die Formatierung geklappt, solange ich keine Formel verändert habe. Somit konnte ich das ganze Jahr eintragen. Vorhin diese Datei geöffnet, einen Stundenwert verändert und nichts tut sich mehr.
Es muss doch eine einfache Möglichkeit geben zu sagen: Du blöde Form, wenn E1 C1, dann soll dein Rahmen rot werden, ansonsten soll er schwarz bleiben. Habe Google bemüht und die ein oder andere Lösung gefunden, angepasst, aber nichts funktioniert. Eine Lösung, die im Modul steht, funktioniert allerdings, wenn ich das Makro manuell starte. Also muss es doch möglich sein. diese Code auch aus der Prozedur heraus zu starten.
Ich habe ne Beispieldatei mal hochgeladen. Die Form, um die es geht befindet sich im Tabellenblatt "Gesamtdaten" F1. Ich weiß auch, das eine normale bedingte Formatierung wesentlich einfacher wäre aber zum einen passt die Form optisch zu den anderen, zum anderen kann es nicht sein, dass mir sone doofe Form ein Eigenleben entwickelt und funzt, wann sie will. Darüber hinaus werde/habe ich bisher noch keine Lösung von euch Experten bekommen, die nicht funktioniert.
https://www.herber.de/bbs/user/159781.xlsm

Gruß Frank

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bedingte Formatierung einer Form per VBA
01.07.2023 11:03:57
hary
Moin
Eine Moeglichkeit bei Formelberechnung. Code in den Code vom Blatt "Gesamtdaten"
Private Sub Worksheet_Calculate()
With ActiveSheet.Shapes("Rechteck: abgerundete Ecken 5")
.Line.Visible = msoTrue
.Line.Weight = xlThin
.Line.ForeColor.RGB = IIf(Range("E1").Value  _
                          Range("C1").Value / 24, RGB(255, 0, 0), RGB(0, 0, 0))
End With
gruss hary


AW: Bedingte Formatierung einer Form per VBA
01.07.2023 11:36:27
Frank
Hallo hary,
danke für die schnelle Antwort. Soweit und vor allem unabhängig von anderen Codezeilen funktioniert deine Lösung. Eine Kleinigkeit ist aber noch, wobei ich nicht nachvollziehen kann, warum Excel das macht. Wenn Soll und Ist-Stunden identisch sind, ist der Rahmen trotzdem rot. Selbst wenn ich den Code umschreibe
Private Sub Worksheet_Calculate()
    With ActiveSheet.Shapes("Rechteck: abgerundete Ecken 5")
        .Line.Visible = msoTrue
        .Line.Weight = xlThin
        .Line.ForeColor.RGB = IIf(Range("E1").Value >= _
                                  Range("C1").Value / 24, RGB(0, 0, 0), RGB(255, 0, 0))
    End With
End Sub
passiert dasselbe. Eigentlich dürfte Excel das von der Logik her gar nicht machen, oder?
Gruß Frank


Anzeige
AW: Bedingte Formatierung einer Form per VBA
01.07.2023 13:45:02
Daniel
Hi
Das könnte daran liegen, dass Computer nicht ganz exakt rechnen können und es zu kleinen Abweichungen in den letzten Nachkommastellen kommt.
Das fällt normalerweise nicht auf, weil für die Anzeige gerundet wird, aber es kann dazu führen, dass Werte, dir auf unterschiedlichen Wegen berechnet werden, dann nicht gleich sind.

Ersetze mal das .Value durch .Text
Dann verwendet VBA die Werte, die in der Zelle angezeigt werden.

Gruß Daniel


AW: Bedingte Formatierung einer Form per VBA
01.07.2023 12:08:37
GerdL
Große Birnen(Tage) und kleine Birnen(Stunden)
Private Sub Worksheet_Calculate()

With Me.Shapes("Rechteck: abgerundete Ecken 5")
.Line.Visible = msoTrue
.Line.Weight = xlThin
.Line.ForeColor.RGB = IIf(CInt(Range("E1").Value * 24)  _
                          Range("C1").Value, RGB(255, 0, 0), RGB(0, 0, 0))
End With

End Sub
Gruß Gerd


Anzeige
AW: Bedingte Formatierung einer Form per VBA
01.07.2023 12:27:48
Frank
Hey Gerd,
was auch immer du mit
Große Birnen(Tage) und kleine Birnen(Stunden)
meinst, Tatsache ist, dass es funktioniert. Selbst in der Formel. Werde mich später mal dran setzen und schauen, wo jetzt der kleine, aber wichtige feine Unterschied liegt. Vielen vielen Dank Gerd, endlich bin ich dieses Sorgenkind los.
Gruß Frank


AW: Bedingte Formatierung einer Form per VBA
01.07.2023 13:07:15
GerdL
Moin Frank!
Excel u. VBA rechnen prinzipiell mit Double-Werten. Da muss man ggf. Runden, z.B. mit CInt, um Übereinstimmungen von zwei Werten zu erhalten.
Gruß Gerd

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige