Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1048to1052
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
Inhaltsverzeichnis

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

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

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
Anzeige
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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige