Überprüfung der "Ergebnisse" der Bildlaufleiste in Excel

349
Letokteren

Ich habe hoch und niedrig gesucht, aber nirgends etwas gefunden, was mir helfen könnte.

Hier ist mein Problem:

Ich muss eine Reihe von Datumsangaben mit zwei Schiebereglern festlegen. Ein Schieberegler legt das Startdatum des untersuchten Zeitraums fest, der zweite legt das Enddatum fest. Dies ist an sich kein Problem, aber ich muss es überprüfen. Wenn der Benutzer beispielsweise das Startdatum nach dem Enddatum (oder umgekehrt) festlegen möchte, sollte das Programm ihn nicht zulassen.

Was ich bisher ausprobiert habe:

Eine einfache Validierungsliste wäre schön. Ich könnte die Daten aus einer anderen Liste auswählen, um diese Werte zu verwenden. Aber ich muss eine Scrolling-Liste mit einem Wert verwenden, der zu der Zeit angezeigt wird, mit zwei Pfeilen und nicht mit einem Dropdown-Pfeil.

Ich habe versucht, die Gültigkeitsprüfung für die Zellen festzulegen, in denen die Datumsangaben dargestellt werden. Dies funktioniert jedoch nur, wenn ich sie manuell eingebe und nicht auf die vom Schieberegler angegebenen Werte reagiert.

Ich habe versucht, ein Makro einzurichten, das den maximalen Wert des Start-Datum-Setter-Bildlaufs auf den Wert des End-Datum-Setzer-Bildlaufs einstellt, aber ich bin kläglich gescheitert (und ich denke, die Antwort ist viel einfacher als das.) ).

Ich habe sogar IF verwendet (= IF (A2> A1; A1; "ERROR")), aber noch einmal: das hindert den Benutzer nicht daran, die falschen Daten einzugeben. Der tatsächliche Wert des Schiebereglers kann immer noch erhöht werden. Wenn ich mich also korrigieren und verringern möchte, muss ich ihn möglicherweise mehr als einmal drücken.

0

1 Antwort auf die Frage

0
teylyn

Sie können jeder Bildlaufleiste ein Makro zuweisen, das überprüft, ob das Enddatum ein gültiges Datum ist. Verwenden Sie für beide Bildlaufleisten das gleiche Makro. In diesem Codebeispiel hat C3 das Startdatum, G3 das Enddatum. Wenn das Enddatum vor dem Startdatum liegt, zeigt das Makro eine Meldung an und setzt das Enddatum auf das Startdatum.

Sub ScrollBar_Change() Dim ws As Worksheet Set ws = ActiveWorkbook.Worksheets("Sheet1") If ws.Range("G3") < ws.Range("C3") Then MsgBox "End date cannot be earlier than Start Date. Adjusting End date" ws.Range("G3") = ws.Range("C3") End If End Sub