[VBA/Excel] Procedure met parameters aan afbeelding koppelen

Pagina: 1
Acties:
  • 396 views sinds 30-01-2008
  • Reageer

  • Clock
  • Registratie: Maart 2005
  • Laatst online: 18-07 07:48
Goedenavond,

Ik zit weer te stoeien met VBA, en zit weer met een probleem. Wellicht weten jullie hoe ik dit kan aanpakken, aangezien ik mijn dagelijkse searchquotum bij google ruimschoots heb overschreden vandaag.

Ik heb een lijst met gegevens (+- 15 records), en achter elke record staan 4 images: up, down, edit, delete. De bedoelding is dat als er op een afbeelding geklikt wordt (stel: record 4, up), de bijbehorende VBA procedure (MoveRecordUp) aangeroepen wordt. Dit is geen probleem, maar ik wil ook het RecordId kunnen meegeven, anders kan de procedure er niks mee. Maar dit pikt Excel niet, deze zegt dan eenvoudigweg: "De formule is te ingewikkeld om te worden toegewezen aan een object.". Ook het toewijzen vanuit VBA met ActiveSheet.Shapes("R4Up").OnAction = "MoveRecordUp(4)" biedt geen soelaas: een soortgelijke error.

Weet een van jullie wellicht een workaround? Want het lijkt me toch een redelijk basale feature. Overigens niet onbelangrijk: het gaat hier om Office 97!

Alvast heel erg bedankt!


Edit: Overigens hoeft het niet per se een image waar de user op klikt te zijn, een woord oid is ook prima.

[ Voor 6% gewijzigd door Clock op 19-05-2007 20:07 . Reden: Toevoeging ]


Verwijderd

een argument kan doorgegeven worden door het geheel in enkelvoudige aanhalingstekens te plaatsen.
bv. de op te roepen routine noemt MoveRecordUp(byval CurrentRecord as integer). bij het toewijzen van de macro aan de figuur type je letterlijk het volgende (inclusief de enkelvoudige aanhalingstekens): 'MoveRecordUp 4' het argument 4 zal als integer doorgegeven worden naar de routine (currentrecord krijgt de waarde 4).

  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 22:29
Wil je trouwens voor iedere knop aparte code schrijven? Waarschijnlijk kan je met Caller-achtige functionaliteit in je code de regel "terugvinden", zodat je achter alle knoppen generieke code kan zetten. (bespaart veel werk en verbeterd de onderhoudbaarheid.)

  • Clock
  • Registratie: Maart 2005
  • Laatst online: 18-07 07:48
Bedankt voor jullie reply's!

Ik was er gisteravond na veel zoekwerk toch nog achter gekomen. De enkele aanhalingstekens deden het hem idd. Overigens plaats ik de afbeeldingen dynamisch vanuit VBA, en wijs ik ook de OnAction dynamisch toe.

Hier een afbeelding van het resultaat :)
http://files.danhof.org/vpl_GoT.jpg

Overigens staat alle data in een Acces database, en wordt ook netjes gewijzigd als er een wijziging in de sheet plaatsvind.