Functie maken

In Excel beschikken we over heel wat functies.
Toch hebben we de mogelijkheid zelf een functie te maken.
Wanneer we zelf een functie maken, zal het wel de bedoeling zijn dat we deze kunnen gebruiken in alle Excelwerkmappen.

Om een functie te maken zijn er een aantal voorwaarden.

1. De code van de functie wordt geschreven in VBA
2. Deze code wordt geplaatst in een module van het projectvenster
3. We moeten deze code opslaan als een invoegtoepassing.

Dit lijkt allemaal veel moeilijker dan het is.

Als voorbeeld zal ik een functie maken die een korting berekent van 10%, wanneer het aantal hoger is dan 100.

Laat ik eerst beginnen met het schrijven van de code in een module van het VBA projectvenster.
We openen het VBA-venster door het tabblad “Ontwikkelaars” te klikken in het lint. Dat moet je al weten. Eerdere versie gebruikers moeten ook weten hoe je dat opent.

Dubbelklik “Module1″(1) in het Projectvenster.
Mocht er bij jou geen module aanwezig zijn in het projectvenster, klik je de knop “Module invoegen” (2) in de werkbalk.

Vervolgens typen we de code in het code-venster.

les17_image001
Ik leg deze even uit:

Function Korting(Aantal, Prijs)

Wanneer we een functie maken, beginnen we de code steeds met Function.
Daarna geven we de functie een naam, in dit geval kies ik voor Korting.
Vervolgens open ik de haakjes en typ twee argumenten, gescheiden door een komma, die moeten worden ingevuld. Dan sluit ik terug de haakjes

‘Bereken een korting van 10% wanneer aan de voorwaarde wordt voldaan

Dit is een lijn commentaar, geen code

If Aantal > 100 Then

Korting = Aantal * Prijs * 0.1

Else

Korting = 0

End If

Wat hier staat lijkt me duidelijk.

Als het aantal groter is dan 100, dan is de Korting gelijk aan het Aantal X de Prijs X 0,1
Dus dat is 10%
Is dat niet het geval, dan is de korting 0.

‘afronden op twee cijfers na de komma

Nog een lijn commentaar, geen code

Korting = Application.Round(Korting, 2)

Met deze lijn code wordt de korting afgerond tot 2 cijfers na de komma

End Function

Dit is het einde van de functie.

Opgelet!!

Voor alle gebruikers van alle versie van Excel, de VBA-code moet steeds in het Engels. Of je nu werkt met een Nederlandse versie, een Franse versie of een Chinese versie, dat maakt niet uit, de VBA-code moet steeds in het Engels.

Ik spreek hier wel over de code, niet over een naam dat je toekent zoals Korting, Aantal of Prijs.

Wat we nu nog moeten doen is deze code opslaan als een invoegtoepassing.

Functie opslaan als Invoegtoepassing

Laat ik eerst eens uitleggen wat een invoegtoepassing is.
Een invoegtoepassing is een verborgen werkmap die voornamelijk bestaat uit code.
De bedoeling van de invoegtoepassing is dat deze code word opgeslagen in een werkmap, en dat deze automatisch opent telkens je een werkblad opent.

Op elke computer waar de invoegtoepassing is geïnstalleerd, kun je deze gebruiken.

In de versies 2007 en 2010 van Excel sla je deze bestanden op met de extensie .XLAM, in eerdere versies met de extensie .XLA.

Om een bestand als invoegtoepassing op te slaan, kies je “Opslaan als…”, en kies je
Excel-invoegtoepassing (*.xlam).

Wens je deze ook te gebruiken in eerdere versies van Excel, dan kies je
Excel 97-2003 invoegtoepassing (*.xla).

les17_image002
Open vervolgens het venster “Opties voor Excel”.
Voor de versie 2010 vind je deze onder de backstage weergave.
Voor de versie 2007 vind je deze onder de Office-knop.
Kies het tabblad “Invoegtoepassingen”. In dit tabblad zie je de zojuist aangemaakt invoegtoepassing staan.
Klik de knop “Start”.
Bij eerdere versies vind je onder de knop “Extra”, de knop “Invoegtoepassingen”.

les17_image004
In het venster “Invoegtoepassingen” selecteer je de gemaakte invoegtoepassing, Korting dus, en klik je de knop OK.

les17_image003

Ter informatie:

Het bestand korting.xalm is toegevoegd aan de downloadbare bestanden.
Wens je dit te gebruiken moet je dit wel installeren op je computer in Excel.

Formidabel U hebt Les 17 voltooid START VOLGENDE LES