VBA Uitleg
  • Home
  • Boeken
  • Uitleg, fouten, sneltoetsen
  • Datums van Feestdagen
  • EXCEL macro's
  • - Alle opmerkingen opmaken
  • - Unieke getallen
  • - Naar de cel met vandaag
  • - Gekleurde cellen optellen
  • - Functies ronde vormen
  • - Gratis downloads
  • - Engels
  • WORD macro's
  • - Woord tellen
  • - Dialoogvenster etiketten
  • - Automatisch zonder macro
  • Contact
  • - Wim is...

Inhoud van een buis berekenen met CILINDERINHOUD

De inhoud van een cilinder of bol berekenen is niet eenvoudig. Zou het niet handiger zijn als je gewoon een formule kon invoeren als CILINDERINHOUD of BOLINHOUD met de maten, en dat je dan meteen de uitkomst ziet?
U kunt die functie zelf programmeren. Dat wordt een UDF genoemd, een 
User Defined Function.

Wilt u de inhoud van een cilinder (een buis) berekenen, dan hebt u de straal en de hoogte nodig.
De formule voor cilinderinhoud is:
Pi * r kwadraat * hoogte

Wilt u dat met één Excel-formule berekenen, dan schrijft u hiervoor uw eigen functie in VBA, als volgt. Open de Visual Basic Editor, dubbelklik in de Projectverkenner op de werkmap waarin u deze functie wilt plaatsen. Klik op Invoegen en op Module; er verschijnt een blanco codeblad. Neem daarin de volgende code over:

Function CILINDERINHOUD(Straal As Single, Hoogte As Single) As Double
  Pi = WorksheetFunction.Pi()
  CILINDERINHOUD = Pi * Straal ^ 2 * Hoogte / 1000
End Function

Typ vervolgens in het Excel-werkblad een formule met deze functie. De opbouw van deze formule is:
=CILINDERINHOUD(straal; hoogte)
Tussen de haakjes geeft u eerst de straal van de cilinder op; na een puntkomma de hoogte. U voert deze getallen in de formule in of u verwijst hiervoor naar twee cellen. Geef de straal en de hoogte op centimeters
Het resultaat is de inhoud van de cilinder, in liters.

Let op: u geeft de straal van de buis op, dus niet de diameter.
Let op: in de code moet u de beide argumenten scheiden met een komma, maar in de formule moet u daar een puntkomma tussen typen, zoals in elke Excel-formule met meer argumenten (althans, als u in Windows in het Nederlands werkt).
Voor een buis met bijvoorbeeld een straal van 4 centimeter en een hoogte van 20 centimeter is de formule:
=CILINDERINHOUD(4;20)
​
U ziet dat deze buis 1 liter water kan bevatten.

Inhoud van een bol berekenen met BOLINHOUD

Wilt u de inhoud van een bol (of bal) berekenen met één formule?
Die inhoud wordt berekend met
4/3 * Pi * r3 (vierderde maal pi maal de straal tot de derde)
Om dat met één formule in Excel te vinden, schrijft u uw eigen functie in VBA. Neem de volgende code over (deze mag in dezelfde module, onder de vorige code).


Function BOLINHOUD(Straal As Single) As Double
  Pi = WorksheetFunction.Pi()
  BOLINHOUD = 4 / 3 * Pi * Straal ^ 3
End Function

Typ vervolgens in het Excel-werkblad een formule met deze functie. De opbouw van deze formule is:
​=BOLINHOUD(straal)
Tussen de haakjes geeft u de straal van de bol op. U voert dit getal in de formule in of u verwijst hiervoor naar een cel.
Het resultaat is de inhoud van de bol, in liters.
De formule luidt bijvoorbeeld:

​​=BOLINHOUD(28,2095)

Geeft u de straal in centimeters op, dan krijgt u de uitkomst in kubieke centimeters. Wilt u de uitkomst in liters, dan deelt u die door 1000 (1 liter is 1000 cm3). Hiervoor voegt u aan de laatste regel van de code / 1000 toe.

Een voetbal maat 5 heeft een diameter van 23 centimeter, dus een straal van 11,5 centimeter. Deze 'bol' heeft een inhoud van 6,371 liter.

Meer eigen functies programmeren?

Deze voorbeelden komen uit het boek:
Excel VBA voor professionals, Derde editie
Foto
Wim de Groot denkt buiten de hokjes
Auteursrecht    Disclaimer    Contact