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

Datumverschil

Status
Niet open voor verdere reacties.

appie36

Gebruiker
Lid geworden
19 mei 2009
Berichten
196
Hallo, ik had nog een vraag wat betreft het datum verschil berekenen.

Het datum verschil berekenen lukt me wel, nu wil ik graag na een filter het verschil weten tussen 2 datum die dan onder elkaar staan.
Ongefilterd is het zo dat A2 onder A1 staat, maar na filteren kan A4 onder A1 staan en wil ik dat datum verschil weten. Is dat mogelijk?
 
Code:
=Subtotaal(4;a1:a10)-Subtotaal(5;a1:a10)
 
ik ken deze als =DAGEN360(A1;A10) deze rekent met de hoogste en laagste waarde in een bereik. Ik wil graag het datum verschil in dagen tussen alle datums in het bereik.

heb ik bijvoorbeeld 4 datums wil ik het verschil tussen de 1e en 2e datum en de 2e en 3e datum enz. voort.

geen idee of dit mogelijk is, maar ik heb goede hoop
 
Maak even een voorbeeld bestandje en plaats het hier. Graag met hoe de data in elkaar steekt hoe en waarop je filtert en wat het resultaat moet worden.
 
ik ken deze als =DAGEN360(A1;A10)
Maar is niet hetzelfde als in #2.
De vraag is ook anders dan in je openingspost.

Code:
Function datver(bereik As Range)
Dim cl As Range, cll As Range
For Each cl In bereik
 If Not cl.EntireRow.Hidden Then
  For Each cll In bereik
    If Not cll.EntireRow.Hidden And cll.Row > cl.Row And cll <> "" Then
      datver = datver & cll - cl & "; "
      Exit For
    End If
   Next cll
 End If
Next cl
End Function
 
Voor zover al bedankt HSV

VBA codes gaat mij op dit moment nog boven de pet.

In de bijlage een klein opzetje, als je daar filtert op bijvoorbeeld perceel 1 komen de datums van perceel 1 onder elkaar.
Ik wil dan graag het verschil in dagen hebben tussen al die datums.



Hopelijk ben ik zo duidelijk genoeg.
 

Bijlagen

  • testbestand.xlsx
    9,1 KB · Weergaven: 26
In C4....
Code:
=datver(A4)


Code in een standaard module:
Code:
Function datver(cl As Range)
Dim cll As Range
 For Each cll In activesheet.listobjects(1).DataBodyRange.Resize(, 1)
    If Not cll.EntireRow.Hidden And cll.Row > cl.Row Then
      If IsDate(cl) Then
        datver = (cll - cl)
      Else
        datver = 0
      End If
      Exit Function
    End If
   Next cll
 End Function
 
Laatst bewerkt:
verbluffend eenvoudig deze formule. hij zoekt dus 1 rij hoger in de tabel.

Het filter heeft helaas geen invloed op de dagen.

Wel lekker snelle reactie
 
Sorry, verkeerde cel gezet.
 

Bijlagen

  • datver.xlsb
    14,6 KB · Weergaven: 35
Harry, helemaal geweldig zo. precies wat ik zoek.

als ik hem namaakt werkt het wel, voeg ik het in mijn bestaande bestand toe dan krijg ik #NAAM ik denk dat ik onderhand te veel aan het klungelen ben geweest.

grt

Richard
 
Heb je meerdere tabellen?
 
ja meerder tabellen en tabbladen, moet ik met namen gaan werken?
 
Dat is dan inderdaad beter Richard.

De formule in de cel wordt bv.
Code:
=datver(A4;"Tabel1")
Ik heb de code gewijzigd in.
Code:
Function datver(cl As Range, tabelnaam As String)
Dim cll As Range
 For Each cll In activesheet.listobjects(tabelnaam).DataBodyRange.Resize(, 1)
    If Not cll.EntireRow.Hidden And cll.Row > cl.Row Then
      If IsDate(cl) Then
        datver = (cll - cl)
        Exit Function
      Else
        datver = 0
      End If
    End If
   Next cll
 End Function
 
harry,

ik weet niet wat ik verkeerd doe. Als ik jou bestand neem werkt het prima. de =datver werkt daar prima. In mijn eigen werkblad werkt het niet, net of excel =datver niet herkent.
meestal vult excel de formule wel aan, dat doe die in mijn blad niet en in jou blad wel.
Heb ik een instelling verkeerd of zo?
 
Appie,

Kopieer de code van vorig reactie.
Druk Alt+F11 om in de VB editor te komen.
Klik op 'Invoegen" → Module.
Plak de code nu in het grote witte vlak.

Opslaan als .xlsm of .xlsb. extensie.
 
Opgelost

Mijn vraag is helemaal opgelost, werkt nu prima.
Hoe zet ik dit als opgelost?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan