Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zellbereich überwachen

Forumthread: Zellbereich überwachen

Zellbereich überwachen
03.08.2007 09:46:00
Martin
Hallo,
ich möchte einen bestimmten Zellbereich überwachen. Eine Änderung in diesem Bereich soll mittels der Ereignisprozedur Woorksheet_change ein Makro aufrufen. Dieses Makro schreibt die geänderten Werte in die nächsten Tabellenblätter. Dort natürlich in Bereiche, die außerhalb der Überwachung liegen.
Die Methode Intersect(Target, Range("Bereich")) funktioniert nicht. Hier wird Fehler 1004 hervorgerufen. Laut Forum ist es scheinbar nicht möglich Intersect zu verwenden, wenn andere Blätter als das aktive Blatt beschrieben werden.
Variante 1:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Intersect(Target, Range("A5:D10")) Is Nothing Then Exit Sub
call Makro_xy
Das Ergebnis ist: "Laufzeitfehler 1004 - Methode 'intersect' für Objekt '_global' fehlgeschlagen"
Variante 2:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target = Range("A5:D10") Then
Call Makro_xy
Else
Exit Sub
End If
Habs auch mit: Target = "A5:D10" versucht - leider ohne Erfolg
Erbebnis ist Laufzeitfehler 13 - Typenunverträglichkeit
Das Makro funktioniert übrigens einwandfrei. Wenn ich es normal (manuell) starte, macht es genau, was es soll.
Wie kann ich den Überwachungsbereich definieren?

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellbereich überwachen
03.08.2007 09:51:23
Hajo_Zi
Hallo Martin,
bist Du Dir sicher das Du intersect korrekt eingesetzt hast?
Ich würde vermuten die Bereiche müssen andersrum
Intersect(RaBereich, Range(Target.Address))

AW: Zellbereich überwachen
03.08.2007 11:52:00
Martin
Vielen Dank für eure Antworten. Jetzt wirds verrückt. Ihr hattet beide recht.
Die Variante von Hajo. Ich stelle den Intersect Ausdruck um, also:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Intersect(Range("A1"), Range(Target.Address)) Is Nothing Then Exit Sub
call Makro_xy

Das klappt mit dem Ereignis _SheetChange problemlos.
Variante 2 von Herby: Ich nehme anstatt _SheetChange - _SelectionChange und ändere an Intersect gar nichts, funktioniert auch!

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
call Makro_xy

Da mein VBA bescheiden ist, verstehe ich das jetzt nicht mehr. Wenn das noch jemand kurz erklären könnte, wäre das sehr nett.

Anzeige
AW: Zellbereich überwachen
03.08.2007 11:18:00
Herby
Hallo Martin,
mit dem Ereignis:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
gehts nicht, da sich Application.Intersect auf ein Rangeobject bezieht.
Wenn du das Ereignis:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
verwendest, dann funktionierts.
Unterschiedliche Blätter mußt du ggf. im Vorfeld abprüfen.
Viele Grüße
Herby
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige