[EXCEL] hoe data capturen uit sheet die constant update?

Pagina: 1
Acties:

  • Gulae
  • Registratie: December 2006
  • Laatst online: 18-04-2022
Bedoeling is het volgende :
In mijn sheet A heb ik een aantal velden die constant geupdate worden. Dit gebeurt door een extern programma.
vb cel "A1" gaat van status 1 naar 2 naar 3. Vervolgens opnieuw naar 1 enz... Het is mogelijk dat een bepaalde status slechts een fractie van een seconde blijft staan.

Nu zou ik telkens wanneer deze cel "A1" wijzigt, een aantal cellen uit mijn sheet willen copieren naar een 2e sheet (om zo een kleine database aan te leggen van al de data die gepasseerd is).

Iemand enig idee hoe dit aan te pakken? Vooral dan hoe ik die eerste cel zou kunnen "monitoren" en wat de trigger is om die waardeverandering te ondervragen?

Verwijderd

Gewoon in sheet 2 een verwijzing naar de cellen leggen die je elke keer wilt hebben.
Ik heb overigens nog nooit een functionele sheet gezien waarin cellen geselecteerd werden voordat er actie ondernomen werd. Als je dat wilt zul je toch iets van VB(.NET) moeten gaan doen...
Excel is gewoon meer voor de min-of-meer statische gegevens, die niet al te vaak worden geüpdate. Voor zoiets heb je een database... en een constructie als 'FUNCTION .... BEGIN...END'.

[ Voor 5% gewijzigd door Verwijderd op 29-12-2006 10:31 ]


  • Gulae
  • Registratie: December 2006
  • Laatst online: 18-04-2022
Bedankt voor je reactie,
Ik weet wel dat ik gewoon een link kan leggen met mijn data uit sheet 1, maar de bedoeling is nu net om deze data die constant wijzigt op te slaan in een 2e sheet.

vb. sheet1 heeft achtereenvolgens onderstaande data (celnaam gevolgd door de waarden):
A1:"1" A2:"Jan" ==> Initiele data
A1:"2" A2:"Piet" ==> na 1.5sec. velden worden geupdate door een extern (niet excel) programma
A1:"3" A2:"Joris" ==> na 0.5sec.
A1:"1" A2:"Maria"==> na 3 sec.
...

Dit zou als resultaat het volgende moeten geven in mijn sheet2:
A1:"1" A2:"Jan"
A2:"2" A2:"Piet"
A3:"2" A3:"Joris"
A4:"2" A4:"Maria"
...

Ik zou dus eigenlijk een soort van monitorfunctie moeten hebben die cell A1 controleert en bij wijziging bepaalde acties uitvoert.

ps :Het zou natuurlijk veel makkelijker zijn moest ik gewoon het externe pgm kunnen aanpassen hetgeen mijn excelsheet voedt, dan zou ik direct een degelijke database kunnen aanleggen. Helaas heb ik hier de broncode niet van.

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:02
Dit hoort eerder thuis in Office-systemen
-> OFF

https://fgheysels.github.io/


  • Gulae
  • Registratie: December 2006
  • Laatst online: 18-04-2022
offtopic:
Nee hoor , staat hier goed

[ Voor 79% gewijzigd door Lustucru op 29-12-2006 11:08 ]


  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 23:50

Reptile209

- gers -

Heel misschien kan je iets met het Worksheet Change event in een macro. Ik weet alleen niet of die alleen afgaat als de user wat invoert, of ook bij (wat ik in jouw geval gok) een OLE change.

Zo scherp als een voetbal!


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

Ga ajb. heel serieus kijken of dat andere programma het niet op een andere manier kan aanbieden dan door een celletje in een Excel sheet bij te werken. Dit is namelijk een behoorlijk lelijke manier van werken.

Maar als je niet anders kan dan is dat zo en denken we nog even verder. Inderdaad zal je iets met Change kunnen/moeten doen. Of als het vaak gebeurt zelf ook gaan pollen, maar dat zal dan wel erg vaak moeten gebeuren. Als het niet vaak verandert kan je misschien wat met de track changes functionaliteit van Excel: zet dat aan en monitor de veranderingen ipv. de echte cel. Verwijder vervolgens de veranderingen die je hebt gezien. Een en ander dan natuurlijk geautomatiseerd, maar ik heb geen beeld van of en hoe dan goed kan. Dat zal microsoft.com zelf natuurlijk wel hebben, kijk daar eens naar.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Gulae
  • Registratie: December 2006
  • Laatst online: 18-04-2022
Probleem is ondertussen op volgende wijze opgelost (misschien nuttig indien nog personen dit nodig hebben).

Het event worksheet_change() zou een mooie oplossing zijn, ware het niet dat dit niet werkt. Dit werkt enkel wanneer manueel een cel wordt ge-updated (update via een extern pgm of via een link uit een andere worksheet werkt dus niet).

Als alternatief heb ik het event worksheet_calculate() gebruikt. Opgelet, dit wordt enkel getriggerd wanneer er een formula ergens in de worksheet staat. Indien er geen enkele formula in de worksheet staat, volstaat het om ergens een dummy formula te definieren.
Op deze manier zal dit event telkens getriggerd worden wanneer er nieuwe data in de sheet wordt ingestuurd. In de vba-code kan je in dit event nu gaan controleren wat de waarde van bepaalde velden is.

Het werkt prima en ik vind het persoonlijk een mooie oplossing (zeker omdat het geen optie is om het externe pgm aan te passen).

groetjes en bedankt voor de hulp,

Gulae

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

offtopic:
Goede afsluiter, bedankt :)

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

met ^^^^, met nog een kleine aanvulling:
Gulae schreef op zaterdag 30 december 2006 @ 18:50:
Het event worksheet_change() zou een mooie oplossing zijn, ware het niet dat dit niet werkt. Dit werkt enkel wanneer manueel een cel wordt ge-updated (update via een extern pgm of via een link uit een andere worksheet werkt dus niet).
Apart. Normaliter wordt change getriggerd bij manuele wijzigingen of via com-acties. Blijkbaar werkt het externe programma met DDE of DB-drivers?
Als alternatief heb ik het event worksheet_calculate() gebruikt. Opgelet, dit wordt enkel getriggerd wanneer er een formula ergens in de worksheet staat. Indien er geen enkele formula in de worksheet staat, volstaat het om ergens een dummy formula te definieren.
Het addertje is dat calculate alleen fired als de veranderende cel ergens als input wordt gebruikt in een berekening. Zomaar ergens een formule definieren is niet voldoende.
F_J_K schreef op zaterdag 30 december 2006 @ 18:53:
offtopic:
Goede afsluiter, bedankt :)
offtopic:
Als het een afsluiter was, waarom moeten die rooien dan toch perse het laatste woord hebben?

[ Voor 11% gewijzigd door Lustucru op 31-12-2006 01:46 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland

Pagina: 1