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

bereknings probleem in mijn eigen functie

Status
Niet open voor verdere reacties.

glda19

Terugkerende gebruiker
Lid geworden
14 jan 2008
Berichten
1.064
Hi
Zit eventjes vast
Er zijn 3 werkregimes en per werkregime verschilt het aantal dagen wanneer er een dag vermindering in rekening moet worden gebracht.
Voor de ander werkregimes zie hier onder
Bij Voltijd word er 1 CVdag afgetrokken na 28 dagen 1 dag vermindering 56 dagen 2 dagen vermindering 84 dagen 3 dagen vermindering
Bij 4/5 word er 1 CVdag afgetrokken na 33,5 dagen 1 dagen vermindering 67 dagen 2 dagen vermindering, 100,5 dagen 3 dagen vermindering
Bij halftijds word er 1 CVdag afgetrokken na 56 dagen 1 dag vermindering 112 2 dagen vermindering 168 dagen 3 dagen vermindering

Dus is iemand 28 dagen ziek dan 1 dag vermindering in rekening brengen bij voltijds.
Maar is die persoon 42 dagen ziek dus geen veelvoud van 28 dan mag er maar 1 dag worden afgetrokken

Werkregime =voltijds haltijds 4/5
VerminderingCv is de soms van ziek + nog enkel ander dagen afwezigheid maar de soms doe ik op het werkblad
Maar bij mijn onderstaande functie voor voltijds bij 42 dagen ziek dan trekt hij 1,5 dagen af i.p.v 1 dag
Hoe doe onderstaand functie aanpassen


Code:
Function Vermindering_cvdagen(Werkregime As String, VerminderingCv As Integer)
' Vermindering cv dagen is door ziekte + werkongeval +staking

'Onderstaande kan ook op het werkblad als volgt berekend worden
'=ALS(EN($Y$9;$AA$8>=28);$Z$7-$W$14-AFRONDEN.N.VEELVOUD($AA$8/28;0,5);ALS(EN($Y$9="4/5";$AA$8>=33,5);$Z$7-$W$14-AFRONDEN.N.VEELVOUD($AA$8/33,5;0,5);
'ALS(EN($Y$9="Halftijds";$AA$8>=56);$Z$7-$W$14-AFRONDEN.N.VEELVOUD($AA$8/56;0,5);$Z$7-$W$14)))

If Werkregime = "Voltijds" And VerminderingCv >= 1 Then
    Vermindering_cvdagen = WorksheetFunction.MRound(VerminderingCv / 28, 0.51)
    

ElseIf Werkregime = "4/5" And VerminderingCv >= 1 Then
    Vermindering_cvdagen = WorksheetFunction.MRound(VerminderingCv / 33.5, 0.5)

ElseIf Werkregime = "Halftijds" And VerminderingCv >= 1 Then
     Vermindering_cvdagen = WorksheetFunction.MRound(VerminderingCv / 56, 0.5)

End If
End Function
 
Ik ben uit, nooit een reactie op wat werkt van jouw kant.

Succes.
 
@HSV, inderdaad, maar ik had verwacht dat er daar een fout zou optreden, die daarna netjes kon afgehandeld worden als je bv, een string of een andere anomalie ingaf.
Niet dus, direkt einde verhaal.
 
Code:
=afronden.beneden.wisk(a4;0,5)

Code:
i = WorksheetFunction.Floor_Math(Cells(1, 1), 0.5)
 
Laatst bewerkt:
Bij ons maken alles super ingewikkeld. Iets dat eenvoudig nee toch moeilijk maken.
En de tekst die ik bij de andere code had geschreven zelf nog eens herlezen en gezien dat via debug.print dat de code niet juist afronde
Is maanden geleden dat ik dit stuk code heb geschreven.

En ben iets raars tegen gekomen ook vraag mij niet hoe het komt maar ik heb een sjabloon blad gemaakt dat ik kopieer en dit al meerdere keren laten doen.
En plots waren er op bepaalde plaatsen de formules weg.
Want had het mee als test naar het werk en mijn collega zei direkt zou bij verlof totaal 29 dagen moeten hebben. En er stond maar 28. Vraag mij niet hoe maar op het sjabloon stond op die plaats 28 i.p.v de formule voor de som
en zijn nog rare zaken gebeurt.
Zal blij zijn als het af is.
En heel erg bedankt voor de massale hulp.
Heb veel bij geleerd via hier en zelf ook veel opgezocht.
Merk dat ik het soms te ver ga zoeken.
Ik ging gaan afronden nooit gedacht aan int geheel getal.
 
heb nu gezien dat het nog niet juist is. Bv per 14 dagen word er een halve dag afgetrokken. Dus na 14 dagen 0.5 dagen en 28 1 dag afgetrokken
Wat is daar voor de juiste formule
 
Code:
Sub OmdatHetZaterdagIs()
   For i = 1 To 100
      Cells(i, 1) = i                            'je dagen
      Cells(i, 2) = WorksheetFunction.Floor_Math(Cells(i, 1) / 28, 0.5)   'methode JVeer
      Cells(i, 3) = (Cells(i, 1) \ 14) / 2       'methode 2
   Next
End Sub
 
wat is het doel van die Backslash bij methode 2
 
Om een Integer te verkrijgen.

Code:
msgbox 10/4
msgbox 10\4
 
Vervolgvraag :
waarom voel ik me als vloermat (floor_math), een binnenkopper, gebruikt door die andere methode ?
Deze site dient om je een duw in de goeie richting te geven, niet om je aan het handje je hele traject te begeleiden.
Met google of met, op eigen initiatief, een uitbreiding op die macro (#7) hierboven had je zo 1 en ander zelf kunnen uitvogelen.
Zo had je zelf geleerd, wat die backslash doet.

Je ganse werkblad hangt met plak en spuug aan elkaar, een puzzel van deeloplossingetjes van diverse helpers hier, waarvan je finesses niet allemaal begrijpt en waardoor er bij bepaalde handelingen ook zaken kunnen verkeerd gaan.
Onderstaande quote slaat op je bedrijf (de NMBS veronderstel ik), maar ook op jezelf.
Bij ons maken alles super ingewikkeld. Iets dat eenvoudig nee toch moeilijk maken.
Een halve dag per volle 14 dagen is kwa moeilijkheidsgraad toch basis wiskunde, de verschillende regimes, dat maakt het misschien iets moeilijker, dus een goeie opzet is alles
 
Laatst bewerkt:
denk dat jij alles weet ik zeker niet ben geen fultime programmeur. Programmeren is een hobby niet mijn hoofd job
 
je begrijpt het nog steeds niet.
Het is ook mijn hobby, niet mijn hoofdberoep.

We proberen je in een richting te duwen, maar het blijft knoeien in de marge, je blijft je ding doen.
Geleidelijk aan haken er steeds meer helpers af, behalve wat idealisten ... .

Laat het even liggen en kijk er binnen 3 maand nog een keer naar en gooi de rommel er dan uit.
 
zoals ik al zei, 3 maand laten liggen en dan met een frisse geest er naar kijken.
Helpt altijd.
 
Jij denkt dat er rommel in zit dat is u zaak de mijne niet. Dus elk programma bij u is 100% rommel vrij. Waarom geeft Microsoft dan regel matig updates. Omdat het ook rommel is komaan
Maar bon u opmerkingen raken mij niet
 
Maar bon u [sic] opmerkingen raken mij niet
Daar zit eigenlijk kort samengevat het probleem tussen de meeste helpers van deze site en jou.
Ik kan het niet beter verwoorden en zal in het vervolg ook de andere kant opkijken.
 
en mijn code is beken door iemand die goed kan programmeren waar ik veel nieuwe zaken heb van geleerd
 
en heb veel van jullie code toe gepast dus knoei zeker niet in de marge.
Maar kennen jullie alle code die er mogelijk zijn om te programmeren denk het niet ben er 100% zeker van
 
en mijn code is beken door iemand die goed kan programmeren waar ik veel nieuwe zaken heb van geleerd
Is dat bedoeld als een trap na? Of wil je zeggen dat je de volgende keer als je hulp nodig hebt direct naar die persoon die goed kan programmeren toegaat? Beide?
Maar kennen jullie alle code die er mogelijk zijn om te programmeren denk het niet ben er 100% zeker van
Nog een schepje er boven op of probeer je te corrigeren?
Jammer, je had beter kunnen schrijven "uw opmerkingen raken mij".
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan