clear event?????

Status
Niet open voor verdere reacties.

Speedy7912

Gebruiker
Lid geworden
4 dec 2009
Berichten
65
Dames/heren,

ik ben bezig in excel een macro te maken welke moet ingrijpen op het moment dat een waarde wijzigt. hiervoor heb ik een procedure gemaakt welke change events afvangt.

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B7:E37")) Then
Call ....
End If
end sub

Nu gebeurd het echter dat deze procedure niet lijkt te zien als ik een waarde met de delete knop verwijder. Of beter gezegd indien de de waarde wijzig in een daadwerkelijke waarde wordt het call statement uitgevoerd. Indien ik via delete de waarde verwijder in diezelfde cell (B7) geeft mijn if intersect niet thuis. Dit terwijl een msgbox(target.address) daadwerkelijk cell B7 terug geeft.

kan iemand mij uitleggen wat deze intersect precies doet (of beter gezegd niet doet) en daarmee direct of indirect wat er mis gaat.

Alvast mijn hartelijke dank.
 
Laatst bewerkt:
Hallo

Helaas, er is zo geen event.

Maar niet getreurd, met het Worksheet_Change event zal het ook lukken ;)

Zelfs als je een lege cel leegmaakt, wordt dit event nog afgevuurd.

Kan je aangeven wanneer precies het event niet afgevuurd wordt (welke omstandigheden)?

Wigi
 
sorry Wigi ik heb mijn oorspronkelijke vraag aangepast. na nader onderzoek lijkt het niet in het event fout te gaan maar in het (toegevoegde in de vraag) intersect statement.
 
Code:
If Intersect(Target, Range("B7:E37")) [B]Is Nothing[/B] Then

of

Code:
If [B]Not[/B] Intersect(Target, Range("B7:E37")) [B]Is Nothing[/B] Then

naargelang wat het makkelijkste werkt.
 
Dank je Wigi

voor zowel de oplossing als de snelle reactie.

Code:
If [B]Not[/B] Intersect(Target, Range("B7:E37")) [B]Is Nothing[/B] Then

heeft de oplossing geboden. Ik zie echter niet wat er nu daadwerkelijk gebeurd. Kun je bovenstaande statement eens uitleggen....een not voor de intersect zou mij doen denken dat target en range niet overlappen. Iets wat na mijn idee wel het geval is. de "Is Nothing" kan ik helemaal nog niet thuisbrengen ...ik heb het toch over een range (in dit geval 1 cell) en niet over de inhoud?

Hoe dan ook...het werkt wel....mijn dank is groot.
 
Code:
If Intersect(Target, Range("B7:E37")) Is Nothing Then

Test of de intersectie (overlapping) "niets" is, m.a.w. of er een overlapping is of niet.

Mocht er wel een overlapping zijn, dan zou Nothing vervangen zijn door de range van het overlappende gebied.

Met Not keer je dat dan om, meestal is het makkelijker om daarop te testen alhoewel het andersom ook zou kunnen.

Wigi
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan