• 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.

Macro continu laten lopen

Status
Niet open voor verdere reacties.
Als er niks in het werkblad wordt gewijzigd dan wordt uiteraard ook de Worksheet_Change niet getriggert.
Als dat externe programma op enig moment niet in A1 kan schrijven zal je de oorzaak in dat externe programma moeten zoeken.
Ook een extern programma dat iets in een cel schrijft zorgt ervoor dat het change event wordt getriggert.
 
Er wordt alleen iets getriggerd als de cursor wordt verplaatst of enter wordt ingedrukt.

Ik heb al zitten zoeken op internet en het moet kunnen met de calculate functie.
Maar hoe is nu de vraag.
 
Dan gebruik je kennelijk het Worksheet_SelectionChange event in plaats van het Worksheet_change event.
 
Dat ga je niet menen toch ? :eek:

dus dit moet werken.


private sub worksheet_change (byval Target as Range)
Call test
End sub
 
Deze werkt ook pas als je de cell verlaat/enter indrukt.
Wat doe ik fout ?
Moet er nog iets onder de change opdracht ?
Een verwijzing naar de betreffende cell ?
 
Wat dacht je van een werkend voorbeeld document.
Als een cel vanuit een macro een waarde krijgt treedt altijd het Worksheet_Change event in werking.
 
Laatst bewerkt:
A1 krijgt van een extern programma een getal tussen de 1 en de 21.
Dit getal wordt door middel van een dde server doorgestuurd naar een plc [machine]
Dus excel is meer een soort doorgeefluik.
 
Omdat ik die DDE server niet heb kan ik dat zo niet testen.
Daarnaast zie ik nergens een wijziging in het werkblad.
Cel A1 wordt alleen gelezen door de macro d.m.v. de methode DDEPoke.
 
Het is moeilijk te testen zo dat snap ik.
Maar A1 wordt beschreven door een ander programma en ik stuur dat getal weer weg.
Ik denk dat het het makkelijkste is om de trigger doormiddel van de calculate functie te laten lopen.
en dan maak ik van A1 een som bijv. in E1 =A1+B1 .
Als het goed is merkt Excel dat er wordt gerekend en daarmee moet de macro te triggeren zijn.
Beetje een omweg maar ik weet het ook niet meer.
Als ik gewoon een knopje maak in het veld dan werkt de macro perfect.
Ook met de selection change werkt het maar ik krijg het niet voor elkaar om het automatisch te laten verlopen.
 
Dan kan ik dus nog steeds niet zien wat dat andere programma doet waarvan je verwacht dat het een wijziging in het Excel blad teweeg brengt.
Want kennelijk gebeurt dat niet.
 
Ik snap dat het beroerd te testen is.
Maar ik denk dat het met de calculate functie moet lukken.
Maar hoe doe ik de verwijzing naar bijv. E1 ?
Want met simpel call test eronder te zetten werkt het niet.
 
Als dat andere programma kennelijk niks in A1 zet heeft het geen nut ook maar iets te proberen want dan gebeurt er gewoon niks.
 
In A1?
Dan moet je dus gewoon die macro waar je in eerste om vroeg om de seconde laten lopen.
 
En dat werkt dus niet .
Dan krijg ik van dat programma een fout.( A1 kan niet beschreven worden )
Het lijkt wel als de macro loopt A1 niet beschreven kan worden.
Ook heb ik al geprobeerd om A1 te kopiëren naar B1 en dan B1 weg te sturen , maar ook dat werkt niet.
De macro moet getriggerd worden nadat hij verandert is.
 
Ik ben bang dat ik er zo verder niks van kan zeggen zonder het zelf te zien. Ik ken het externe programma uiteraard niet.
Maar als die op een juiste manier A1 vult dan wordt 100% het Worksheet_Change event geactiveerd.
 
Ik kan ook een 1 laten schrijven in bijv. A2 en daarmee de macro triggeren.
Na ontvangst kan ik die weer op 0 zetten.
Misschien is dat een optie ?
 
Ik kan geen opties geven zonder het externe programma te kennen.
Maar de optie die je noemt kan je toch eenvoudig testen?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan