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

uren verschil berekenen in een formule

Status
Niet open voor verdere reacties.
Wat je moet doen staat in #19. Even zelf wat proberen kan echt geen kwaad.
 
VenA

Beetje opzoekwerk en kan deze ?

f Not Intersect(Target, Range("I6:I47"), ("I53:94"), ("I100:I141"), ("I147:I188"), ("T6:T47"), ("T53:T94"), ("T100:T141"), ("T147:T188"), ("AE6:AE47"), ("AE53:94"), ("AE100:AE141"), ("AE147:188")) Is Nothing Then
Application.EnableEvents = False

Dit is volgens google
Alleen doet deze niks bij mij
is nochtans volgens google zo opgemaakt.
 
Al die () haakjes moeten er so wie so uit.. er is maar 1 set haakjes nodig voor de Range("I6:I47", ..<knip>.. ,"AE147:188")

wat waarschijnlijk ook werkt is de bereiken verlengen zodat je maar 3 sets nodig hebt.
Range("I6:I188" , "T6:T188", "AE6:AE188")
Voor de zekerheid kan je nog een validatietest toevoegen om te voorkomen dat er uren worden berekend als er geen shift is gekozen dus
- dat kolom G niet leeg mag zijn (-2 kolommen van kolom I)

dan kom je op (niet getest) of iets in die richting
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
t = 8 / 24
  If Not Intersect(Target, Range("I6:I188" , "T6:T188", "AE6:AE188")) Is Nothing [COLOR="#FF0000"]And Target.offset(,-2)<> ""[/COLOR] Then
    Application.EnableEvents = False
    Target.Offset(, 3) = IIf(Target.Value < t, t - Target.Value, "")
    If Target.Value > t Then
      Target.Offset(, 2) = Target.Value - t
      Target.Value = t
    End If
    Application.EnableEvents = True
  End If
End Sub
 
De range geef je op met ("1e bereik, 2e bereik, etc") dus geen "" om de individuele bereiken.
 
Hey Roel,
VenA

Ok ik probeer dit even en dan kunnen we weer zeggen iets slimmer te zijn geworden.
Misschien nog dit Roel,
In jou bereik zitten ook beveiligde cellen tussen . dit geeft geen invloed?

Grts
Marc
 
Mij lijkt dit niet te werken :(

Hierbij het bestand herleid naar 1 persoon.

Wat doe ik hierin fout??? pfffffff frustrerend !!!!
 

Bijlagen

heb deze nu verwijdert de "" en enkel bij begin en eind de "" geplaatst maar blijkt hier niet te werken
hierbij de code
Private Sub Worksheet_Change(ByVal Target As Range)
t = 8 / 24
If Not Intersect(Target, Range("I6:I188, T6:T188, AE6:AE188")) Is Nothing And Target.Offset(, -2) <> "" Then
Application.EnableEvents = False
Target.Offset(, 3) = IIf(Target.Value < t, t - Target.Value, "")
If Target.Value > t Then
Target.Offset(, 2) = Target.Value - t
Target.Value = t
End If
Application.EnableEvents = True
End If
End Sub
 
Oemph.. altijd een risico om uit je hoofd code aan te passen nu dus even vergeten dat de aanhalingstekens weg ook weg moeten :(

@plainme.
De laatst geplaatste code in #28 moet werken. MAAR bij jou kan het zijn dat door eerdere testen de eventcode is uitgeschakeld door de regels
Application.EnableEvents = False

Om dit op te lossen moet je ofwel het bestand opslaan en afsluiten en daarna heropenen, dan worden Event-macro's weer geactiveerd.

Andere optie is om onderstaande code in een module te zetten en daarna die macro uit te voeren.

Code:
Sub enableEventsAan()
Application.EnableEvents = True
End Sub

en daarna de code te testen met invoer in I, T of AE
dan moet het werken

de code regel met enableEvents = false heft mij ook al heel wat frustraties gekost. Je kijkt er makkelijk overheen en als je niet in de gaten hebt dat je code is vastgelopen nadat de events op False zijn gezet en dus niet meer worden uitgevoerd.. en lijkt daardoor of aanpassingen niet doorwerken..
 
besta allen,

ik weet niet waaraan maar tot ergernis bij mij lukt het hier voor geen meter.
alle codes zijn ingegeven zoals door jullie opgemaakt maar niks.
Opgeslagen, heropgestart, ..... niks
Einde raad nu. :( :( :(

Grts
Marc
 
ALs ik jou document open kan ik zonder wijzigingen er direct mee werken.

Enige wat ik nog kan bedenken is dat je wel een regel moet gebruiken waar kolom G is gevuld met een shift. als kolom G voor die regel leeg is werkt het niet.
 
Hey Roel,

Aaaaaa dat kan het zijn.... ik heb steeds geprobeerd in de eerste lijn van januari en februari.
i
en iderdaad HET WERKT yipeeeee :) :) :) :) zondags blues weg :cool::cool:

iedereen een dikke bedankt voor jullie geduld en begrip !!!

Mvg
Marc
 
Amici,

Nu kom ik tegen een ander probleempje aan....

Namelijk is het optellen van de "RO" niet meer juist.
Voorheen was dit gewoon als er RO stond kon ik via "SOM" deze laten invullen in sheet overzicht voor alle maanden.
Alleen nu doet deze het niet meer.
Kan dit zijn omwille van de vba code die eer nu instaat?
En wat kan ik hier aan doen?

Alvast bedankt

Mvg
Marc
 
Nee dat heeft niets met de VBA code te maken dat kan nooit goed gewerkt hebben.
je hebt "8:00" in je formule staan daarom rekent hij niet want de aanhalingstekens maken tekst van elke invoer. Je moet daar de functie tijd voor gebruiken.
Code:
=ALS(H6="RO";[B]TIJD(8;0;0)[/B];"")

of

Code:
=ALS(H6="RO";[B]8/24[/B];"")
 
Amici,

Ik denk dat er hier een misverstandje is ....
vorige berichtje was eigenlijk ook niet zo duidelijk vermeld waarvoor excuses
Dat ik het zo kan oplossen in de sheet "nieuwe rooster" wist ik.
De vraag is / was hoe doe ik het in de sheet "jaaroverzicht ". Hier moet het totaal per maand in worden opgenomen.
In het voorbeeld staat er tweemaal RO genoteerd en deze neemt hij niet meer op in het jaaroverzicht.
Hoe /wat is hier de juiste oplossing voor ???

Alvast bednakt

Mvg
Marc
 
Klopt VenA,
Mijn excuses voor dit
Sheet noemt "overzicht"
daar jaaroverzicht in terug te vinden.

Was ook te vinden in formulenamen.

mvg
Marc
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan