• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Code uitvoeren bij celwijziging

Status
Niet open voor verdere reacties.

flbos

Gebruiker
Lid geworden
5 feb 2004
Berichten
267
Kan in Excel programmacode uitgevoerd worden op het moment dat een cel wijzigt?

In feite dus een on change event voor een specifieke cel. Het lijkt me dat zoiets mogelijk moet zijn, maar ik kom er met de help niet uit.

BVD!
 
Hoi flbos,

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
CODE
End if
End sub

Jeroen
 
Bedankt, deze oplossing ziet er veelbelovend uit alleen werkt ie nog niet. Ik neem aan dat ik in plaats van "a1" de cel die gecontroleerd moet worden moet invullen, maar dat werkt helaas niet.

Ik had al gekeken naar worksheet_change, maar ik snap de werking van 'target' niet precies. Vallen alle gewijzigde cellen onder target?

Het is namelijk zo dat met het veranderen van de cel waarop gecontroleerd wordt nog veel meer cellen wijzigen. Maakt dit iets uit?
 
Hoi flbos,

Worksheet_ change doet iets als er een waarde in het werkblad veranderd, tussen haakjes staat Target. De plaats van de cursor wordt dus als target gezien.

Intersect(Target,range("A1")) ziet de overlap tussen de genoemde bereiken in dir geval dus de Target en de range A1. Als, heel cryptisch, not intersect() is nothing, dubbele ontkenning dan gaat je code werken wat je er ook mee wil doien. Staat de cursor ergens anders in het werkblad, veranderd A1 niet en gaat de code dus ook niet werken.

Je kunt het bereik in de intersect ook uitbreiden met Union:
If Not intersect(Target, Union(Range("A1"), Range("K10"),Range("P15"))) Is Nothing Then

Ik hoop een beetje duidelijk.

Jeroen
 
Jeroen,

Bedankt voor de uitleg, de werking is me helemaal duidelijk. Sterker nog het werkt nu prima. Ik had de code in eerste instantie in een module gezet en niet bij de code die bij een bepaald werkblad hoort. Nogmaals bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan