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

Updaten van functies die in in meerdere workbooks worden gebruikt.

Status
Niet open voor verdere reacties.

Hans Gorter

Gebruiker
Lid geworden
27 okt 2008
Berichten
97
Ik heb voor mijn collega’s op school een set functies gemaakt waarmee zij hun lessen kunnen plannen. Het lespakket verschilt per klas. Natuurlijk wordt die set functies uitgebreid. Probleem is nu dat ik dacht heel slim te zijn door een Workbook te maken die alleen maar mijn set functies bevat en vandaaruit het workbook te openen met lesgegevens (die per klas anders is). Door mijn functies public te maken dacht ik dat ze ook te gebruiken zouden zijn in het workbook met lessen. Mooi niet dus. Het lijkt dat het public bereik is beperkt tot het workbook waarin de functies staat.
U snapt dat het een heel werk is om alle (zo’n 20) workbooks te updaten als er iets wijzigt in mijn functies. Wie is nog slimmer dan ik ;-) en weet de oplossing?
Als altijd weer dank!
 
Maak er een invoegtoepassing van, die kun je dan centraal opslaan en ook buiten het werkboek om updaten.
 
Dank voor je reactie. Heb ik geprobeerd (XLAM-file). Heb daar in de module alle functies public gemaakt. Roep ik ze aan in de betreffende workbook dan is de functie onbekend (uiteraard invoegtoepassing ingevoegd in dat workbook).
 
Heb je een voorbeeld van een document en die invoegtoepassing?
 
Ik heb een helloworld functie in de hgFunctie.xlam geplaatst en die aangeroepen in hgWerkboek (de invoegtoepassing is daar geregistreerd). Zie bijlagen
 

Bijlagen

Function in je eigen .xlam die als invoegtoepassing in Excel is toegevoegd kun je vanuit een cel in een werkblad gewoon aanroepen met =HelloWorld() en eventueel parameters tussen de haakjes.
Wil je een sub of een functie in die .xlam aanroepen vanuit code buiten de .xlam dan doe je dat als volgt:

Code:
Private Sub testworld()
    Application.Run "hgFuncties.xlam!HelloWorld"
End Sub

Een .xlam wordt trouwens in Excel geregistreerd en niet per werkboek.
De functies erin zijn dus ook in een nieuw werkboek direct beschikbaar.
 
Laatst bewerkt:
Ik heb even geen tijd om er echt diep op in te gaan maar ik heb er alle vertrouwen in want een kort testje met Application.Run verliep perfect. Hartstikke bedank (ook namens mijn collega's)!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan