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

welke fout zit er in deze formule (urenlijst)

Status
Niet open voor verdere reacties.
Als je dan toch ga testen, dan kun je meteen mijn testversie gebruiken.
Let op: De bijlage is een testversie, waarbij sommige oorspronkelijke formules zijn vervallen (dus niet gebruiken als master)
Verder heb ik inmiddels al een fout gevonden en die in deze testversie verbeterd.
Om wat sneller te kunnen variëren heb ik 3 spinners toegevoegd, die de Datum, Aanvang en Einde in stapjes verhogen of verlagen.
Om verschillen sneller te zien heb ik hier en daar wat voorwaardelijke opmaak toegepast.
 

Bijlagen

hoi piet bedankt voor je reactie en vooral je tijd -) we zijn weer een stap verder.....

ik heb even wat tijden ingevuld de 100% en 130% uren worden correct uitgevoerd echter de 150% uren zit nog een herstel in
stel ik werk van 20:00 tm 02:00 geeft mijn urenlijst aan 2uur 130% en 2 uur 150% ik ken deze formule van min en max niet weet jij waar de fout dan in zit?
 
Ja, ik had nog niet getest met een aanvangstijd die groter was dan de eindtijd.
Daar ging het inderdaad fout.
Nu de oplossing gevonden door met hulpkolommen te werken AA-AL
 

Bijlagen

Hier word ik echt heel gelukkig van alle uren worden perfect berekend ik heb nog geen fout kunnen ontdekken mijn complimenten piet!

als ik het goed begrijp is dit alleen mogelijk als je gebruikt maakt van hulp tabellen en is niet in 1 formule te maken toch?
de reden dat ik dit vraag is ik wil mijn uren automatisch via een database bijhouden via template word er elke keer een week aangemaakt en uren verzameld in tabblad database
ook heb ik een stukje vba code erin staan die maakt een pdf van de sheet bijv 2019_40. (als afdrukpagina) en mailt deze via outlook. dit omdat ik mijn excel bestand niet wil opsturen

Ik voorzie een paar problemen namelijk:
1. mijn afdrukpagina staat ingesteld op schalen naar 1 pagina de template is nu een heel stuk groter/breder geworden dus de letters worden ook kleiner met afdrukken (ook als ik de letters wit maakt etc)
2. ook als ik de tabellen zou verplaatsen naar urenhulpblad en de formules aan zou passen dan verwijst elke week naar dezelfde tabel en cel dus kan ik mijn database niet gebruiken

wat denk jij dat de oplossing is?
zoeken in de vba code om een range in te stellen van afdruk? of bestaat er een code om alle cellen in waardes om te zetten in dat geval kies ik voor het laatste denk ik

ik heb om de dagen te berekenen de formule van hsv terug geplaatst
Code:
=ALS(C7="";"";ALS(OF(D6>C7;C6>D6);WERKDAG(B6;1);B6))
de formule die je erin had gezet berekende de dagen niet goed als ik meerdere klussen had op 1 dag -)

heel erg bedankt voor je tijd die je erin steekt ben er nu al heel blij mee
 
Die hulpkolommen heb ik gemaakt omdat ik die complexe formules na 1 dag al niet meer kon debuggen.
Ik denk in simpele stapjes dus maakt ik de formules ook in stapjes.
Als pagina opmaak staat ingesteld op fit to page, dan zou je je printbereik kunnen instellen naar datgene wat je wilt printen.
Dat kun je doen via menu: View en ribbon: Page break preview.
Door de dikke blauwe contouren te verslepen kun je je printbereik precies instellen op je urenlijst alleen.
En de hulpkolommen vallen dan buiten het printbereik.
Volgens mij kun je een pdf maken voor alleen het printbereik. (ik gebruik PDFcreator als printer en dan kun je je print opmaak gewoon instellen.)
Ook als je de volgende code gebruikt kun je de printarea instellen:
Code:
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Bestand _
        , Quality:=xlQualityStandard, IncludeDocProperties:=True, [COLOR="#FF0000"]IgnorePrintAreas:=False[/COLOR], OpenAfterPublish:=True
Het lijkt me ook een goed idee om via VBA de berekende data van je template te kopiëren als waarden naar een aparte printversie.
Dat maakt je wat flexibeler om je reken gedeelte te maken zonder aan de rapport-opmaak te hoeven nadenken.
Je zou ook kunnen denken aan een printversie alleen en dan met VBA alle berekeningen te doen, maar dan gaat je uitdaging meer in de richting van VBA programmeren.
Met Excel kun je alle kanten uit :). Je moet een manier zoeken waarbij je zelf het gevoel hebt dan je de werking onder controle hebt.
Want als het op een dag niet werkt, moet je de boel wel kunnen fixen.
 
Laatst bewerkt:
helemaal mee eens piet en ik vind excel een heel leuk programma je kan er echt alle kanten mee op !

gelukkig zijn er mensen hier op het forum die bereid zijn om mee te denken en te helpen. ook met jou hulp is mijn urenlijst nog completer dan ik ooit zou kunnen.
Ik ga er eens mee stoeien wat voor mij een prettige werkwijze is. Ik ben inmens gelukkig met de oplossingen -):D
dank jullie wel :thumb:
 
toch te vroeg gejuigd :eek: ik heb nu alle tijden veranderd en dat klopte dus -) maar als de cellen van begin en eindtijd leeg zijn krijg ik automatisch 7 uur 150 procent

ik zie dat ook terug in je hulp tabel (deel6)
waar ligt dat aan?
 
Ja, klopt.
in cell AF6 het overbodige = teken weghalen en dan de formule naar beneden doortrekken.
Code:
=24*IF(AND(OR($C6<T$3;$C6>$D6);$D6>[COLOR="#FF0000"][B]=[/B][/COLOR]T$2);MIN(T$3;$D6)-MAX(T$2;$C6*(($C6<=$D6)));0)
Ik ben blij om te zien dat je grondig test :)
 
Ok, dat is mooi.
Dan kun je de topic als Opgelost melden (ongeveer rechts boven op pagina 1)
 
Ondanks dat dit topic al gesloten is, heb ik nog een aanvullende vraag gekregen van de TS.
Om te voorkomen dat je en een formule en getypte tekst in de kolom omschrijving krijgt.
De volgende macro (onder het werkblad) zet de code "G18-ATV" in de kolom Omschrijving.
De code wordt voor eventuele aanwezige tekst gezet.
En als de atv vlag eraf gaat wordt de code G18-ATV verwijdert en de overige tekst blijft behouden.
Code:
Sub Worksheet_Change(ByVal Target As Range)
  rij = Target.Row
  col = Target.Column
  If col = 14 And rij >= 6 And rij <= 17 Then
    If UCase(Target.Value) = "ATV" Then
      Cells(rij, 6).Value = "G18-ATV  :  " & Cells(rij, 6).Value
      Exit Sub
    End If
    If Target.Value = 0 Then
      If Left(Cells(rij, 6).Value, 12) = "G18-ATV  :  " Then Cells(rij, 6).Value = Trim(Mid(Cells(rij, 6).Value, 13, 999)): Exit Sub
      If Left(Cells(rij, 6).Value, 11) = "G18-ATV  : " Then Cells(rij, 6).Value = Trim(Mid(Cells(rij, 6).Value, 12, 999)): Exit Sub
      If Left(Cells(rij, 6).Value, 10) = "G18-ATV  :" Then Cells(rij, 6).Value = Trim(Mid(Cells(rij, 6).Value, 11, 999)): Exit Sub
      If Left(Cells(rij, 6).Value, 9) = "G18-ATV :" Then Cells(rij, 6).Value = Trim(Mid(Cells(rij, 6).Value, 10, 999)): Exit Sub
      If Left(Cells(rij, 6).Value, 8) = "G18-ATV:" Then Cells(rij, 6).Value = Trim(Mid(Cells(rij, 6).Value, 9, 999)): Exit Sub
      If Left(Cells(rij, 6).Value, 7) = "G18-ATV" Then Cells(rij, 6).Value = Trim(Mid(Cells(rij, 6).Value, 8, 999))
    End If
  End If
End Sub

P.S. Ik weet dat de code veel compacter kan, maar dat mag de TS zelf proberen.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan