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

Fout in code

Status
Niet open voor verdere reacties.

wieter

Terugkerende gebruiker
Lid geworden
26 jun 2009
Berichten
1.128
In bijgevoegd bestand loopt het mis met de percentages bij feestdagen.
Als je op een feestdag werktijden invult, worden de percentages correct berekend(200%).
Als je nu het bestand opslaat en opnieuw opent, koppen de percentages niet meer.
Vindt iemand de oorzaak?
Ik denk dat dit stukje code de fout veroorzaakt.
Code:
Set c = Sheets("Blad2").Range("A2:A13").Find(What:=Datum, LookIn:=xlValues, LookAt:=xlWhole)
    If Not c Is Nothing Then
        Dag = 7
    Else
    Dag = Weekday(Datum, 2)
    End If
    If Dag < 6 Then
        DagTekst = "m-vr"
    ElseIf Dag = 6 Then
        DagTekst = "za"
    Else
        DagTekst = "zo/feest"
    End If

Bekijk bijlage Urenreg. met ort2.xlsm
 
Vertel er ook even bij waar in al je code in dat document bovenstaande te vinden is.
 
Er gaat kennelijk iets mis met het bepalen van het dagnummer na de eerste berekening. Wijzig je voorbeeldcode eens in het volgende:

Code:
    'maak DagTekst
'   Set c = Sheets("Blad2").Range("A2:A13").Find(What:=Datum, LookIn:=xlValues, LookAt:=xlWhole)
'    If Not c Is Nothing Then
    If [d3].Value <> "" Then
        Dag = 7
    Else
 
Ja Ed, dat lost het probleem op voor Cel D3
Code:
 If [D3] <> "" Then
        Dag = 7
    Else
    Dag = Weekday(Datum, 2)
    End If
    If Dag < 6 Then
        DagTekst = "m-vr"
    ElseIf Dag = 6 Then
        DagTekst = "za"
    Else
        DagTekst = "zo/feest"
    End If
Maar als ik een loop wil maken voor D3 : D33(voor de andere feestdagen) krijg ik de code niet aangepast.

Bekijk bijlage Urenreg. met ort2.xlsm
 
Snap ik. Mijn bedoeling was ook om je te wijzen op de oorzaak. Je zult dus moeten bekijken waarom na een eerste berekening het bepalen van het dagnummer kennelijk niet goed gaat.

Edit:
Na nog wat gezocht te hebben lijkt er een heel geniepige oorzaak te zijn.
Wijzig:
Code:
Set c = Sheets("Blad2").Range("A2:A13").Find(What:=Datum, LookIn:=xlValues, LookAt:=xlWhole)

eens in:
Code:
Set c = Sheets("Blad2").Range("A2:A13").Find(What:=Trim(Datum), LookIn:=xlValues, LookAt:=xlWhole)
 
Laatst bewerkt:
Vooreerst bedankt Ed voor je doorzettende zoekwerk.
MAAAR!
Nu stelt het probleem zich omgekeerd.
Bij ingave van werktijden op een feestdag, zijn de percentages fout.
Na opslaan en opnieuw openen zijn de percentages wel juist.
Dus juist omgekeerd als eerst.
Bekijk bijlage Urenreg. met ort2.xlsm
 
De eerste keer na het wijzigen van de code en opslaan zal het inderdaad fout zijn. Waarschijnlijk is het in orde als je eerst de tijden leeg maakt het bestand opslaat, het bestand weer opent en de tijden aanpast. Dan het bestand weer sluiten en openen om e.e.a. de effectueren.
 
Spijtig Ed, maar dat lost het probleem niet op.
Bij ingeven van tijden op een feestdag zijn de percentages fout.
Pas na opslaan en opnieuw openen zijn ze juist.
Hopelijk blijf jij je speurwerk volhouden, Bedankt.
 
De wijziging veranderd niets aan de percentageberekening dus daar mag je dan zelf nog een keer naar kijken. Misschien dat dat spatie probleem op een andere plek ook nog zit?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan