udf met datumverschil - datediff error

littlepete

Well-known Member
Joined
Mar 26, 2015
Messages
507
Office Version
  1. 365
Platform
  1. Windows
hallo allemaal :)
ik heb een lange formule waar een aantal verjaardagen in weergegeven worden. daarvoor gebruik ik natuurlijk datumverschil.
dat ziet er dan zo uit:
kolom q = geboortedatum ; kolom am = overlijdensdatum
(...)
&ALS(365-DATUMVERSCHIL(Q7;VANDAAG();"yd")=1;"verjaart morgen"&TEKEN(10);"")
(...)

het gedeelte van de functie datumverschil wil ik vervangen door een udf die op dezelfde wijze werkt. ik wil dit doen om letters te besparen : van datumverschil => dv :)

alleen lukt het me niet en krijg ik steeds een error in waarde... wat is er dan fout ? voor zover ik weet moet in de udf alles ook weer in het engels...

dit is wat ik nu probeer:
VBA Code:
Public Function dv(eerste As Range, tweede As Range, Interval As String) As Variant
    Dim DiffDate As Long
    Interval = LCase(Trim(Interval))
    Select Case Interval
    Case "yyyy"                                    '= Year
        DiffDate = DateDiff("yyyy", eerste, tweede)
    Case "q"                                          '= Quarter
        DiffDate = DateDiff("q", eerste, tweede)
    Case "m"                                          '= Month
        DiffDate = DateDiff("m", eerste, tweede)
    Case "y"                                          '= Day of year
        DiffDate = DateDiff("y", eerste, tweede)
    Case "d"                                          '= Day
        DiffDate = DateDiff("d", eerste, tweede)
    Case "w"                                          '= Weekday
        DiffDate = DateDiff("w", eerste, tweede)
    Case "ww"                                      ' = Week
        DiffDate = DateDiff("ww", eerste, tweede)
    Case "h"                                          '= Hour
        DiffDate = DateDiff("h", eerste, tweede)
    Case "n"                                          '= Minute
        DiffDate = DateDiff("n", eerste, tweede)
    Case "s"                                          '= Second
        DiffDate = DateDiff("s", eerste, tweede)
    Case Else
        DiffDate = "Fout!"
    End Select
    MsgBox DiffDate
    dv = DiffDate
End Function

ik heb al geprobeerd de , door ; te vervangen; de interval niet vooraan maar achteraan te plaatsen...
geen enkele wijziging werkt niet, waar zit de fout ?
bedankt voor de hulp :) !!!
 

Excel Facts

Bring active cell back into view
Start at A1 and select to A9999 while writing a formula, you can't see A1 anymore. Press Ctrl+Backspace to bring active cell into view.
ik gaf hier anders een udf, die werkt op vandaag, maar die kan je zo kan aanpassen zodat die met een geboorte en een sterfdatum werkt, want in dat geval tellen er geen verjaardagen meer mee, denk ik.
 
Upvote 0
ik gaf hier anders een udf, die werkt op vandaag, maar die kan je zo kan aanpassen zodat die met een geboorte en een sterfdatum werkt, want in dat geval tellen er geen verjaardagen meer mee, denk ik.
hallo...

voor zover de kennis die ik nu heb denk ik dat twee dingen juist zijn:
de binnenkant van de udf moet volledig engels zijn: dus komma's in plaats van kommapunten; de interval vooraan en niet achteraan.
de buitenkant (de lijn =dv(.........) moet dan weer in het nederlands, dus kommapunten. maar of de interval hier vooraan of achteraan moet geen idee...

tot ik besefte dat ik één mogelijkheid nog niet geprobeerd had: zoals ik hierboven zeg: binnenkant engels; buitenkant volledig vlaams dus...

EN JA ZO WERKT HET DUS WEL !!!!! de code hierboven is dus correct maar: in de formule draai je dat om : " =dv(q6;am6;"yyyy")

lang leve de logische onlogica in excel (lol)
en bedankt voor de hulp !!!
 
Last edited:
Upvote 0
Dat van de komma's en de puntkomma's klopt aardig, maar de oorzaak in eerste aanleg van je issue was, dat je een zgn. Method probeerde te draaien, nl. VBA.DateDiff.
Dit werk niet binnen een UDF. Er zijn nog een aantal andere beperkingen waar je rekening mee dient te houden als je een UDF maakt, zie de links hieronder.
Fijn in ieder geval dat @BSALV inmiddels een passende oplossing voor je heeft!

Create custom functions in Excel

Description of limitations of custom functions in Excel
 
Upvote 0
Dat van de komma's en de puntkomma's klopt aardig, maar de oorzaak in eerste aanleg van je issue was, dat je een zgn. Method probeerde te draaien, nl. VBA.DateDiff.
Dit werk niet binnen een UDF. Er zijn nog een aantal andere beperkingen waar je rekening mee dient te houden als je een UDF maakt, zie de links hieronder.
Fijn in ieder geval dat @BSALV inmiddels een passende oplossing voor je heeft!

Create custom functions in Excel

Description of limitations of custom functions in Excel
had ik nog maar een goed geheugen zoals vroeger... maar ben wel blij dat dit opgelost is, ik ga meteen die beperkingen eens bekijken ! bedankt en een aangename week gewenst !
 
Upvote 0

Forum statistics

Threads
1,224,823
Messages
6,181,184
Members
453,020
Latest member
Mohamed Magdi Tawfiq Emam

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top