Clever-Excel-Forum

Normale Version: Autoform als Ampel (VBA Code optimieren)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo Ralf,

habe das gerade mal kurz getestet im meiner Basteldatei. Scheint zu funktionieren, Danke schon einmal.

Werde das morgen mal richtig einbauen und noch einmal gründlich testen.


Dann mal schönen Feierabend, werde morgen berichten wie es läuft.
Hi,

(05.07.2017, 13:24)M.Wichmann schrieb: [ -> ]auch der Fehler, variable nicht definiert.

da wäre es sinnvoll zu wissen, welche Variable gemeint ist, welche also markiert wird!
Hallo zweiter Ralf^^

bei dem Code mit Fehler ist:

Code:
.ShapeRange.Fill.ForeColor.SchemeColor = fctFarbe(Target.Value
 markiert.

Aber wie gesagt der Code vom ersten Ralf funktioniert im ersten Test.
Hi,

(05.07.2017, 14:41)M.Wichmann schrieb: [ -> ]bei dem Code mit Fehler ist:

Code:
.ShapeRange.Fill.ForeColor.SchemeColor = fctFarbe(Target.Value
 markiert.

siehste: warum der Fehler kommt, da hast Du ja die Antwort von Ralf schon bekommen:
Zitat:Ja, da steht ja auch noch Target drin!

d.h. "Target" ist ein Variable, die nicht definiert ist!
Weil im Sub-Aufruf die Variable "Target" gar nicht mehr drin steht!
Hallo,

leider bin ich jetzt erst dazu gekommen, mit der Datei weiterzumachen.

Wenn ich das nur starte, also per =Heute()  und weiterer Berechnung scheint alles zu funktionieren.

Aber wenn ich versuche den Ablauf per Drehfeld zu simulieren kommt immer ein Fehler. Bis ich auf der Seite manuell irgendwo was ändere, dann läuft es. Sehr seltsam, aber für die fertige Datei später sollte das kein Problem darstellen. Wollte das nur melden.

Fehler wird immer die zeile mit dem Bezug zur Zelle angezeigt.

Edit: leider kommt auch ständig der Debugger wenn ich an der zu Überwachenden Tabelle was ändere
(05.07.2017, 10:58)M.Wichmann schrieb: [ -> ]1. Form:   Datum > Heute = grün, Datum < Heute = Rot
2. Form:  zusätzlich Datum < Heute +5 = Gelb
3. Form:  Datum < Heute +20 = Gelb

Hallo noch mal, 

um diesen Fehler evtl zu umgehen. Könnte man den Code nicht dahingehend ändern, das die Berechnung im Code stattfindet wenn das Blatt bzw die Datei geöffnet wird??? 

Leider hatte ich heute kaum Zeit, sonst würde ich mich daran auch mal versuchen. Wobei ich mir nicht sicher bin, wie man gerade das mit dem Datum schreibt im Code.
Hallo,

nochmals:
Zitat:Ja, da steht ja auch noch Target drin!

Solange du nicht selbst anfängst den Code zu verstehen, wird das nix werden.
Das hast du ja schon im Nachbarforum schmerzlich erfahren müssen.

Fange erst mit kleinen Sachen an.
Habe deine Erfolgserlebnisse, lasse dir Zeit, dann wird es schon werden.

Grüße vom Excellist
Hallo,
Im aktuellen Code ist das mit target doch gar nicht mehr. Ich meine den Code von Beitrag 10.
Hi,
(06.07.2017, 20:41)M.Wichmann schrieb: [ -> ]Ich meine den Code von Beitrag 10.

wie Ralf auch schon schrieb:
Zitat:Ebenfalls ungetestet (heißt, Du könntest mal etwas zum Testen hochladen!):

bei seiner Datei wird vermutlich der Code funktionieren.
Hallo Mario,

(06.07.2017, 13:12)M.Wichmann schrieb: [ -> ]Wenn ich das nur starte, also per =Heute()  und weiterer Berechnung scheint alles zu funktionieren.

Aber wenn ich versuche den Ablauf per Drehfeld zu simulieren kommt immer ein Fehler. Bis ich auf der Seite manuell irgendwo was ändere, dann läuft es. Sehr seltsam, aber für die fertige Datei später sollte das kein Problem darstellen.
Fehler wird immer die zeile mit dem Bezug zur Zelle angezeigt.

in meine vernebelte Glaskugel gucken die Zauberformel Abrakadabra Fidibus sprechen und darauf hoffen das sich der Nebel lichtet. Hhmm, funktioniert irgendwie nicht oder doch? Das könnte eventuell daran liegen, das nach der Ausführung des Codes aus dem Beitrag 10 ein Shape selektiert ist und somit dein uns unbekannter Drehfeldcode in einen Fehler läuft.

Code ohne die Selektierung
Code:
Private Sub Worksheet_Calculate()
'    Me.Shapes("Rechteck 4").Select    'Rechteck 4 ist der Name der Freihandform
   With Me.Shapes("Rechteck 4")
       .ShapeRange.Fill.ForeColor.SchemeColor = fctFarbe(Me.Range("A21"))
   End With
   ' Hier für eine weitere Form
'    ActiveSheet.Shapes("Rechteck 5").Select    'Freeform 2 ist der Name der Freihandform
   With Me.Shapes("Rechteck 5")
       .ShapeRange.Fill.ForeColor.SchemeColor = fctFarbe(Me.Range("A22"))
   End With
'    ActiveSheet.Shapes("Rechteck 6").Select    'Freeform 2 ist der Name der Freihandform
   With Me.Shapes("Rechteck 6")
       .ShapeRange.Fill.ForeColor.SchemeColor = fctFarbe(Me.Range("A23"))
   End With
End Sub
Seiten: 1 2 3