Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
304to308
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
304to308
304to308
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro automatisch Starten bei Zellveränderung

Makro automatisch Starten bei Zellveränderung
09.09.2003 10:27:28
Claudia
Hallo Ihr Profis,

in einem verstecken (ausgebeldeten) Tabellenblatt verändert sich der Wert einer Zelle (F100) abhängig von den Eingaben in anderen Tabellenblättern.

Ich möchte nun, dass sich immer abhängig von dem Wert, welcher in dieser Zelle steht ein bestimmtes Makro automatisch ausgeführt wird. Wenn Wert "1" dann Makro_1, wenn Wert "2" dann Makro_2 usw. bis Wert "7".

Ich habe mich nun in der VBA Hilfe bis zu dem Punkt Ereignisprozedur gelesen - jedoch scheitere ich mit meinen mageren VBA Kenntnissen.

Ich habe auch ein Code Beispiel gefunden, welches mir jedoch nur mäßig weiterhilft, da ich den Wert in Zelle (F100) nicht selber eintrage, sondern dieser sich über eine Formel selber neu errechnet:


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$F$100" And Target.Value = 1 Then
Call Makro_1
End If
If Target.Address = "$F$100" And Target.Value = 2 Then
Call Makro_2
End If
'usw.; ggf. mit Select Case arbeiten
End Sub


Wer kann mir bitte, bitte helfen?

Liebsten Gruß,
Claudi

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro automatisch Starten bei Zellveränderung
09.09.2003 11:16:08
Lars
Hallo Claudi,

ich hab mal schnell drüber geschaut. Du hast in Deinem Makro keinen Verweis für das Tabellenblatt. Vielleicht funktioniert es wie unten beschrieben. Habs aber noch nicht getestet.


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = Sheets("Tabelle2").Range("$F$100") And Target.Value = 1 Then
Call Makro_1
End If
If Target.Value = 2 Then
Call Makro_2
End If
End Sub


Viel Erfolg

Lars
AW: Makro automatisch Starten bei Zellveränderung
09.09.2003 13:02:49
Claudia
Hallo Lars,

ich habe deinen Rat befolgt. Mein Code sieht nun so aus:


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = Sheets("Parameter").Range("$D$23") And Target.Value = 1 Then
Call falscher_Tag_auf_falscher_Tag
End If
If Target.Address = Sheets("Parameter").Range("$D$23") And Target.Value = 2 Then
End If
If Target.Address = Sheets("Parameter").Range("$D$23") And Target.Value = 3 Then
Call falscher_Tag_auf_gleicher_Tag
End If
If Target.Address = Sheets("Parameter").Range("$D$23") And Target.Value = 4 Then
Call gleicher_Tag_auf_falscher_Tag
End If
End Sub


Es passiert leider gar nichts, bzw. wenn ich die Makros manuell starte, kommt der Laufzeitfehler 13 - siehe mein Feedback auf die Antwort von Christoph.

Was mache ich falsch?

Liebsten Gruß,
Claudi
Anzeige
das war ja schon ganz heiß
09.09.2003 11:21:42
Christoph Dümmen
Glückwunsch Claudi,

da warst Du schon absolut richtig. Dein Makro wird auch funktionieren, wenn da nicht...

... das Makro auch zum Tabellenblatt gehören müßte.
Also:
* ALT+F11
* (Tabelle1) doppelt anklicken
* Jetzt hier den Code einfügen und nicht im normalen Modul
* Voila

Viel Spaß
Christoph
AW: das war ja schon ganz heiß
09.09.2003 12:37:45
Claudia
Hallo Christoph,

scheinbar mache ich noch immer einen Fehler, da das Ganze noch immer nicht automatisch funktioniert.

Mein Code sieht jetzt so aus:


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$D$23" And Target.Value = 1 Then '*** ist dan markiert
Call falscher_Tag_auf_falscher_Tag
End If
If Target.Address = "$D$23" And Target.Value = 2 Then
End If
If Target.Address = "$D$23" And Target.Value = 3 Then
Call falscher_Tag_auf_gleicher_Tag
End If
If Target.Address = "$D$23" And Target.Value = 4 Then
Call gleicher_Tag_auf_falscher_Tag
End If
End Sub


Wenn ich die Makros selber starte, bricht es mit der Fehlermeldung "Laufzeitfehler 13" Typen unverträglich ab und die oben gekennzeichnete Zeile ist gelb markiert.

Und Chage ist wirklich der richtige Befehl, um automatisch eine Werteveränderung in der Zelle D22 zu erkennen? In der Hilfe von Excel steht:

Syntax

Private Sub Worksheet_Change(ByVal Ziel As Range)
Ziel   Der geänderte Bereich. Er kann mehr als eine Zelle umfassen.
Anmerkungen
Dieses Ereignis tritt nicht ein, wenn sich Zellen während einer Neuberechnung verändern. Verwenden Sie das Calculate-Ereignis, um eine Neuberechnung des Tabellenblattes aufzufangen.
Ist meine Veränderung der Zelle nicht eine Neuberechnung?
Hilfe, Hilfe.... :-)
Liebsten Gruß,
Claudi

Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige