leider stoße ich bei folgender Aufgabenstellung an meine Grenzen . Ich habe ein Liniendiagramm, in dem ein Umsatzverlauf und Zielkorridor vorhanden ist. Nun wollte ich, dass die Linie Umsatz rot wird, wenn sie im negativen Bereich den Zielkorridor verlässt.
Dafür habe ich mir Hilfsspalten angelegt.
Nun verwende ich folgenden VBA Code:
Code:
Private Sub Worksheet_Change(ByVal Target As Range) If ActiveSheet.Range("C4").Value >= ActiveSheet.Range("E4").Value Then ActiveSheet.Range("D4").Value = "" End Sub
Leider bekomme ich hier immer eine Fehlermeldung. Eventuell habt ihr ja eine Idee und könnt mir helfen.
ps. Warum beschreibst du D4 über das Makro und nicht über eine Formel mit ""?
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität. Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen." Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
Leider geht dies nicht über eine Formel, da die Zelle dann nicht als leer gilt. Ich habe mich sicher auch nicht richtig ausgedrückt :20: . In diesem Diagramm habe ich zwei Linien für den Umsatzverlauf. Eine rote und eine Grüne. Diese bekommen die Daten aus den Spalten Umsatz 1 und Umsatz 2. Damit erhalte ich die farbige Wiedergabe, wenn der zulässige Wert unterschritten wird.
Jetzt möchte ich die Zellen B2:B13 mit den Spalten E2:E13 vergleichen. Ist der Wert in B kleiner als in E, soll der Wert in die entsprechende Zeile der Spalte D eingefügt werden. Ist der Wert größer, dann soll er in C eingefügt werden.
Bis jetzt habe ich folgendes:
Code:
Private Sub CommandButton1_Click()
For spalte = 2 To 5 For zeile = 4 To 13
Worksheets("Tabelle1").Activate
wert1 = Cells(4, 2) wert2 = Cells(4, 5)
If wert1 < wert2 Then wert = wert2 Else wert = wert1 End If Cells(4, 3) = wert
a) Ich hoffe dass ich dir mit meiner ersten Antwort ein wenig geholfen habe. Wenn du innerhalb des Ereignismakros "Workcheet_Change" in diesem Arbeitsblatt etwas ändern willst, must du vorher die Ereignisse ausschalten, da du sonst in eine Endlosschleife kommst. (Einschalten der Ereignisse nicht vergessen.)
b) Dass mit dem Löschen der Inhalte per Makro habe ich jetzt auch verstanden.
c) Ich würde in den beiden Linien auch Markierungspunkte formatieren, falls der Wert nur eines einzelnen Zeitpunktes unter bzw über dem Minimum liegt.
d) Hast du zusätzliche Fragen?
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität. Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen." Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität. Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen." Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
eventuell kannst du nochmals helfen. Der Umsatz in Spalte B wird über eine Formel übertragen. Wenn das Makro gelaufen ist, wird die Formel immer gelöscht. Kann man die eventuell umgehen?
in dieser Version werden vom Makro nur noch die Kurvendaten überschrieben.
Bemerkungen: Ich nutze in dem Programm jetzt zwei benannte Bereiche, "Daten" und "Kurven". Sichtbar im "Namensmanager" des Menüs "Formeln"
a) Wenn du die Daten erweitern willst must du darauf achten auch die Namensbereiche zu erweiterm. (Wenn du Zeilen innerhalb des Bereiches einfügst, wird der Namensbereich genau wie der Diagramkurvenbereich automatisch erweitert.) b) Die benannten Bereiche können innerhalb des Arbeitsblattes beliebig positioniert werden ohne in dem Makro Änderungen durchzuführen zu müssen. c) Innerhalb der benannten Bereiche darf der Spalteninhalt nicht vertauscht werden.
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität. Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen." Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.