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

Worksheet_Change funkt nicht

Worksheet_Change funkt nicht
31.05.2005 15:21:50
Heinz
Liebe Excellenten,
ich knabbere an folgenden Problem:
Ich habe folgendes Makro

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("F2") = Target Or Range("I2") = Target Then
Call Mein_Makro
End Sub

Das Makro "Mein_Makro" soll ausgeführt werden, wenn in
F2 oder I2 was geändert wird.
In "Mein_Makro" werden auf dem Tabellenblatt
unter anderem in den Zeilen 57 bis 100 alle
Inhalte gelöscht (Clear oder ClearContents)
und anschließende bestimmte Zellen neu eingefärbt.
Das Problem:
Ich kann mit Worksheet_Change alle möglichen Makros ausprobieren
und es funkt.
Aber sobald es darum geht, in meinem "Mein_Makro" die Zeilen
56 bis 100 zu löschen :
Rows("56:100").Select
Selection.Clear
gibt es eine Fehlermeldung und beim debuggen
steht der Cursor wieder in meinem Worksheet_Change
Makro.
Wenn ich das löschen der Zeilen rausnehme - funkt's wieder.
... aber ich muss die Zeilen löschen ...
Ich freue mich auf Eure Rückmeldungen
und wünsche allen einen schönen Tag
Heinz

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

Betreff
Datum
Anwender
Anzeige
AW: Worksheet_Change funkt nicht
31.05.2005 15:30:08
Hajo_Zi
Hallo Heinz,
versuche einen anderen Ansatz.
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
'* H. Ziplies                                     *
'* 19.07.03, 30.10.03, 31.05.05                   *
'* erstellt von Hajo.Ziplies@web.de               *
'* <a href="http://home.media-n.de/ziplies/">http://home.media-n.de/ziplies/</a> *
Dim RaBereich As Range, RaZelle As Range
' Bereich der Wirksamkeit
Set RaBereich = Range("F2, I27")
'   noch mehr Bereiche
'    Set RaBereich = Union(Range("C7:I26"), Range("L7:R26"), Range("U7:AA26"), Range("AD7:AJ26"))
'   ab Vesion XP braucht der Schutz nicht aufgehoben werden
'   Formatierung bei Schutz kann über Dialog Schutz eingestellt werden
'    ActiveSheet.Unprotect ("Passwort")
For Each RaZelle In Range(Target.Address)
If Not Intersect(RaZelle, RaBereich) Is Nothing Then
Call Mein_Makro
End If
Next RaZelle
'    ActiveSheet.protect ("Passwort")
Set RaBereich = Nothing
End Sub

Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem Windows 2000 SP4 und Excel Version 2000 SP3.


Anzeige
ich weis nicht warum, aber es geht
31.05.2005 21:41:23
Heinz
Hallo Hajo,
vielen Dank, da wär ich sicher nicht drauf gekommen.
Es funktionert, auch wenn ich nicht weis, was die
"Intersect" Funktion bewirkt und was das
"RaBereich = Nothing" am Ende des Makros bedeutet.
Aber das soll nich negativ klingen - ich bin heilfroh
über die Lösung und wünsche noch einen schönen Abend.
Heinz
AW: ich weis nicht warum, aber es geht
01.06.2005 05:41:17
Hajo_Zi
Hallo Heinz,
mt Set setze ich zu Beginn ein Bereich und den Lösche ich am Ende wieder mit Nothing. Um den Speicher wieder freizugebenen.
Range(Target.Address) enthält alle Zellen die mit einmal geändert wurden.
Die Schleife geht jetzt jede einzelne Zelle durch, mit Intersect wird geprüft ob die geändete Zelle i Überwachungsbreich liegt. (Festgelegt durch Set)
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige