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

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?

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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige