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

Intersect richtig verstanden?

Forumthread: Intersect richtig verstanden?

Intersect richtig verstanden?
16.02.2009 09:34:00
Gordon
Moin,
ich habe folgenden Code:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rC, rg As Range
For Each rC In Target
If rC.Value = Worksheets(ActiveSheet.Name & " (2)").Cells(rC.Row, rC.Column).Value Then
Worksheets(ActiveSheet.Name & " (2)").Cells(rC.Row, rC.Column).Copy
rC.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:= _
False
Else
rC.FormatConditions.Delete
rC.Interior.ColorIndex = 6
End If
Next rC
End Sub


Ich möchte gerne es so haben, dass wenn auf dem Blatt eine Zelleninhaltsänderung vorgenommen wird, dass diese Zelle dann gelb wird und die "Bedingten Formatierungen" gelöscht werden. Das klappt auch gut. Wenn der Ursprungswert (Kopie des Blattes liegt versteckt im Hintergrund) wieder hergestellt wird, soll die Ursprungsformatierung wieder ersellt werden. Das klappt auch ganz gut.
Nun eine Frage: Und zwar wenn der Ursprungswert wieder hergestellt wird, macht die Datei eine verhältnismäßig lange Rechenpause (2 bis 3 Sekunden) und erst dann ist die Datei wieder bearbeitbar. Liegt es daran, dass das kopieren der "Bedingten Formatierung" diese Rechenzeit benötigt, oder eher das alles mit "Worksheet_Change" passiert und ich noch per Intersect etwas eingrenzen muss. Mag mir jemand da 'nen Hilfe geben?
Gruß
Gordon

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Nix Intersect, EnableEvents!
16.02.2009 09:47:00
Renee
Hi Gordon,
Das hat nix mit Intersect zu tun (Intersect git die Schnittmenge 2er Bereiche im gleichen Blatt zurück).
Vielmehr machst du in einem .Change Event einen .Change un das kann u.U. zu tödlichen Folgen (für Excel, nicht für dich ;-) führen. also:

Application.EnableEvents = False
For each ....
Next rC
Application.EnableEvents = True
...


GreetZ Renée

Anzeige
AW: Nix Intersect, EnableEvents!
16.02.2009 11:13:00
Gordon
Ok,
danke dir. Klappt nun wunderbar. Wobei ich noch nicht so ganz verstehe, was da abläuft.... :(
Dennoch danke ich dir! :-)
Gruß
Gordon
AW: Nix Intersect, EnableEvents!
16.02.2009 11:28:00
Uwe
Hi Gordon,
das Change-Ereignis reagiert auf Änderungen in der Zelle. Wenn Du in Deinem Code eine Änderung der Zelle vornimmst, wird das Ereignis ausgelöst und der Code läuft wieder an usw. usw. Das ist eine Endlosschleife, die von Excel allerdings nach x Durchläufen (z.B. nach 3 Sekunden) abgebrochen wird, weil Excel ja schlau ist und sich seinen Teil denkt (;-).
Mir Renèes Code werden die Ereignisse vorher ausgeschaltet, Dein Code ausgeführt, und dann wieder eingeschaltet. Dadurch vermeidest Du, dass der Code in einer Schleife läuft.
Ich hoffe ich konnte das verständlich 'rüberbringen.
Gruß
Uwe
(:o)
Anzeige
AW: Nix Intersect, EnableEvents!
16.02.2009 12:30:00
Gordon
Ok,
jetzt ist, glaube ich, der Groschen entgültig gefallen. Danke dir.
Gruß
Gordon

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

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