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

Automatisch uitklokken

Status
Niet open voor verdere reacties.

mvdvlist

Gebruiker
Lid geworden
16 dec 2016
Berichten
732
Hallo forumleden,

hier ben ik alweer.

Ik heb als bijlage een (uitgekleed) bestand dat zeer behoorlijk werkt. Blij mee.

Mij vraag is echter:

Het zou zo moeten zijn dat iedereen die vergeet uit te klokken, automatisch wordt uitgeklokt om bijvoorbeeld 18:00

Ik heb al van alles geprobeerd met OnTime en dergelijke, maar vindt geen betrouwbare oplossing.


Hopelijk hebben jullie betere ideeën...
 

Bijlagen

  • PrikklokOud.xlsm
    901,1 KB · Weergaven: 25
Staat het bestand altijd open? Wat werkt er niet met OnTime? Ergens een bestandje vinden op het www en dan een verzoek indienen tot werkzame code lijkt mij niet echt helpvraag.;)

Gebruik een tabel ipv een kleurplaat. Verberg geen tabjes in voorbeeldbestanden. En volgens mij zijn er wel betere voorbeeldjes te vinden voor deze vraag.

Opvoeden van het personeel is natuurlijk ook een optie. Niet uitgeklokt geen loon:d
 
Hallo VenA,

inderdaad heb ik de basis van dit bestand al jaren, en wat ik nu heb, lijkt er zelfs niet echt meer op, uitgezonderd de code achter het Voorblad.

Ok die is aangepast, en de "Look" is veel uniformer als in dit voorbeeldje.

De code had ik ongeveer zoiets als:

Code:
Application.Ontime "18:00" ([COLOR="#FF0000"]Code[/COLOR])

Wat er in Code moet komen is dus juist het punt.

Ik heb getracht met Find de rij op te zoeken. Dat lukt, maar dan wordt er slechts EEN record uitgeklokt.

Het lukt me niet om dan met bv een loopje naar de volgende rij te gaan enz.

Wat betreft je vraag over discipline: Het gaat niet zozeer over salaris en uren, maar meer om
inzichtelijk te maken welke dagdelen de mensen aanwezig zijn geweest. Dat verschilt namelijk erg per dag, omdat het
gaat over een soort dagbesteding voor ex verslaafden en (deels) gehandicapten. Dus velen van hen snappen niet eens wat een pc is, laat staan om in- of uit te klokken.

Vandaar, als deze mensen weggaan of worden opgehaald, kan het zomaar gebeuren dat er niet wordt uitgeklokt. En dat is dus het probleem.

Overigens zijn de tijden in dit bestand allemaal fake...

Enne, de wachtwoorden zijn altijd alleen de eerste letter van de naam, waarop je moet dubbelklikken.
Uiteraard alleen in dit voorbeeld. Ik stuur het weer mee...

Bedankt zover.
 

Bijlagen

  • PrikklokOud.xlsm
    887,8 KB · Weergaven: 18
een schot voor de boeg
Je formules werken met volledige kolommen ipv enkel de tabel, dat vreet processortijd.
 

Bijlagen

  • PrikklokOud.xlsm
    897,2 KB · Weergaven: 37
Hallo Cow18,

dit is inderdaad een mooi opzetje. Ik ga het bestuderen.
Maar uiteindelijk wil ik toch graag dat de "ingeklokten"gewoon worden uitgeklokt om 18:00.

Dus dat er in kolom c "Stop werkzaamheden" de datum en tijd (Nu 18:00) keihard wordt ingevuld, zodat e.e.a. ook gewoon direct op het voorblad zichtbaar is.
Werkblad "registratie"blijf onzichtbaar, zoals gezegd zijn deze mensen meestal niet capabel om daarin te werken, en dat mag ook niet...


Overigens: in mijn huidige, inmiddels veel uitgebreidere bestand, zijn de formules al vervangen en dus werken die niet meer mert hele kolommen maar met ranges.

Hartelijk dank zover...Leuke mogelijkheden in dat Ontime...
 
Code:
Private Sub Workbook_Open()
  sn = Blad3.Columns(2).SpecialCells(2).Resize(, 2)
    
  For j = 3 To UBound(sn)
    If sn(j, 2) = "" And Date > sn(j, 1) Or Time > 0.75 Then sn(j, 2) = sn(j, 1) \ 1 + 0.75
  Next
    
  Blad3.Columns(2).SpecialCells(2).Resize(, 2) = sn
Edn Sub
 
Oplossing

Hartelijk dank, snb en anderen.

Ik heb inmiddels ook iets dat perfect werkt. Maar ik denk dat de oplossing van snb beter is in mijn geval.

Mijn code achter ontime is:

Code:
With Blad3.ListObjects(1).DataBodyRange
 For A = 2 To .Rows.Count
  If .Columns(3).Cells(A).Value = vbNullString Then
   .Columns(3).Cells(A).Value = Format(Now, "dd-mmm-yyyy hh:mm:ss")
  End If
 Next A
End With

Die kan ik plaatsen achter Workbook_Open of .BeforeClose

Dat ga ik nog uitvogelen..
 
Nog een korte reactie:

Achter WorkBook_Open()

Code:
 Application.OnTime TimeValue("14:09:00"), "Module1.UITKLOKKEN"

En nu werkt het zoals ik dat wil. Ik heb het getest (om 14.00 uiteraard).
Topic kan gesloten worden.
Hartelijk dank.
 
Schrijf zo min mogelijk in het werkblad: werk met arrays en schrijf die in 1 keer weg.

In jouw geval is Applicaation.ontime overbodig en zinloos.
 
als je databodyrange gebruikt mag je een loop gebruiken van 1 tot .rows.count, want de koprij is al uitgesloten.
 
Laatst bewerkt:
SNB, hartelijk dank. Jou code werkt beter want de mijne werkt alleen in een tabel. En als ik hem aanpas naar een range, worden alle rijen gevuld.
Dat moet ik dus onderbreken met Ctrl-Break, anders duurt het wat lang...:p

Cow18, ook hartelijk dank voor je tip!! Klasse, e.e.a draait prima nu...
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan