Posts tonen met het label vba. Alle posts tonen
Posts tonen met het label vba. Alle posts tonen
donderdag, december 07, 2017
Nieuw w-tje, VBA eigenaardige ROUND()
Binnen Excel waarbij voor UDF (User Defined Functions = functies / formules die door de gebruiker in VBA worden gemaakt) is het mogelijk om getallen af te ronden met de VBA functie ROUND. De functie heeft echter een afwijkende manier van afronden. In dit w-tje wordt beschreven op welke wijze de functie ROUND in VBA getallen afrond en waar je bij het gebruik van de betreffende functie rekening moet houden.
Labels:
afronden,
excel,
excel formules,
round,
vba
Excel, datumformaat vs taalinstelling (yyyy, jjjj)
In Excel is het mogelijk om bijvoorbeeld cellen die datums bevatten, met behulp van de formule =TEKST(<datum>;<datumformaat>)in het gewenste formaat op het scherm te tonen. Bij het opgeven van het datumformaat kun je tegen problemen aanlopen als deze afwijken van de taalinstellingen (internationale instellingen van Windows). Dit probleem is echter goed te omzeilen met de VBA-functie Application.International()
Als voorbeeld vullen we cel A1 met de datum 31-12-2014. In cel A2 vullen de formule =TEKST($A$1;"yyyy-mm-dd"). Het formaat staat tussen dubbele quotes "" en zal op een computer met Nederlandse taalinstellingen niet werken. Op een computer met Nederlandse taalinstellingen zal de formule in A2 het resultaat yyyy-12-31 teruggeven. Met behulp van User Defined Functions (UDF), kan uitkomst worden geboden. Definieer in VBA (Module) de volgende functies:
Function Jaarformaat() As String
' Deze procedure is in het leven geroepen om de jaaraanduiding in het datumformaat
' afhankelijk te laten zijn van de internationale instellingen
' Hierbij wordt gebruik gemaakt van Application.International kenmerken
Jaarformaat = String(4, CStr(Application.International(19)))
End Function
Function Uurformaat() As String
' Deze procedure is in het leven geroepen om de uuraanduiding in het datumformaat
' afhankelijk te laten zijn van de internationale instellingen
' Hierbij wordt gebruik gemaakt van Application.International kenmerken
Uurformaat = String(2, CStr(Application.International(22)))
End Function
Met behulp van bovenstaande functies is het mogelijk om de verschillen in formaataanduiding in uren ("hh" - "uu") en jaren ("yyyy" - "jjjj" ) op te vangen. De betreffende functionaliteit is natuurlijk ook voor andere taalinstellingen te gebruiken. De gedefinieerde UDF Jaarformaat (en Uurformaat) kan in de =TEKST formule worden gebruikt. (=TEKST(A1;Jaarformaat()&"-mm-dd")).
Op deze manier is het bovenstaande probleem met betrekking tot de verschillende afkortingen in datumformaat per taal op te lossen.
donderdag, februari 11, 2010
Nieuw w-tje, TELTUSSEN()
Excel heeft geen ingebouwde functie om het aantal cellen (voorkomens) in een bereik te tellen waarvan de waarden tussen twee waarden vallen. Het is mogelijk om dit elke keer op te lossen met formules, maar waarschijnlijk is het handiger om een eigen functie in VBA te maken die op elke willekeurig moment kan worden gebruikt.
Lees er meer over in de w-tjes.
Lees er meer over in de w-tjes.
Labels:
excel,
excel formules,
gebruikersfunctie,
gratis,
vba
Abonneren op:
Posts (Atom)