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

[vba] werktijd registratie week

Status
Niet open voor verdere reacties.

boswottels

Gebruiker
Lid geworden
17 feb 2010
Berichten
49
Ik ben een tijdje bezig geweest om een werktijdregistratie form te maken in excel en vba. Hierbij dient de arbeidstijdenwet te worden toegepast. Ik heb hiervoor allerlei formules in mijn werkbladen gehangen. Alleen nu wil ik dat de gebruiker zelf zijn tijden invoert. Dus mij leek dit handig omdat in VBA te doen, dit omdat hierdoor er niks anders ingevuld kan worden dan een tijd + het is overzichtelijk. Ik laat de tijd invullen d.m.v. 2 textvakken, de ene leest de uren in en de andere de minuten( Had het zelf liever anders gezien, voor tips hoor ik het ook graag)

Nu heb ik deze code voor 1 dag gemaakt waar er 2keer een begin en eindtijd kan worden ingevuld. Dit is alleen voor de maandag ( muur1= maandag uur 1 etc.). Maar ik heb nu nog 6 andere dagen nodig in het form, is het nu handig om deze code 6 keer te copy pasten en te wijzigen of wat kan ik het beste doen?

Alvast bedankt voor jullie tip's en adviezen.


Code:
Dim mUur1, mUur2, mMin1, mMin2, muur3, mUur4, mMin3, mMin4 As String
Dim mBeginTijd1, mEindTijd1, mBeginTijd2, mEindTijd2 As Long

    mUur1 = mu1.Text
    mMin1 = mm1.Text
    mUur2 = mu2.Text
    mMin2 = mm2.Text
    
    muur3 = mu3.Text
    mMin3 = mm3.Text
    mUur4 = mu4.Text
    mMin4 = mm4.Text
    
    
    If mUur1.Value = "" Or mMin1.Value = "" Or mUur2.Value = "" Or mMin2.Value = "" Then
    Cells(14, 4).Value = " "
    Cells(14, 5).Value = " "

    Else
    
    mBeginTijd1 = mUur1 + ":" + mMin1
    mEindTijd1 = mUur2 + ":" + mMin2
    Cells(14, 4).Value = mBeginTijd1
    Cells(14, 5).Value = mEindTijd1
    
    End If
    
    '2e rij'
    If mu3.Value = "" And mm3.Value = "" Or mu4.Value = "" Or mm4.Value = "" Then
    Cells(9, 4).Value = " "
    Cells(9, 5).Value = " "

    Else
    
    BeginTijd2 = uur3 + ":" + Min3
    EindTijd2 = Uur4 + ":" + Min4
    Cells(9, 4).Value = BeginTijd2
    Cells(9, 5).Value = EindTijd2
    End If
 
mogelijke inspiratie

Ik weet niet of je hier wat aan hebt, maar misschien geeft het wat inspiratie.
De meeste code staat geschreven onder de OK knop op UF1 Form.

Ik ga ervan uit dat de tijden die in de textbox ingevoerd worden als:
hh:mm
Bijvoorbeeld: 08:00, of 07:15 enzovoort.

Tevens heb ik niet twee begin en eindtijden uitgewerkt, ging om het idee.

Met vriendelijke groet,

Tilly_the_Shark
 

Bijlagen

  • Userform.xls
    29 KB · Weergaven: 156
Ik heb mijn versie in de bijlage gevoegd.

Ik hoop dat jullie hierdoor genoeg informatie hebben.
 

Bijlagen

  • Helpmy1.rar
    35,3 KB · Weergaven: 59
Ja doe maar rustig aan hoor. Ik werk in het weekend sowieso niet :thumb:

Ik ben al blij dat je me wilt helpen.
 
Werktijden wegschrijven met UserForm

Ik heb het bestand nog niet compleet doorgenomen. Bij het openen krijg ik een waarschuwing naar kringverwijzingen. Ben je hiervan bewust?

In mijn bestand heb ik alleen het wegschrijven van een werkweek behandeld met een begin en eind tijd. Dit kan natuurlijk uitgebreid worden.

Hopelijk heb je hier iets aan?

Met vriendelijke groet'n,

Tilly_the_Shark
 

Bijlagen

  • UserForm Voorstel.xls
    53 KB · Weergaven: 133
Tillytheshark dit heb ik eigenlijk ook een soort van gemaakt. Het gaat er om dat de gebruikers geen punten, dubbele punten, komma's of iets toevoegen.Anders krijg je fouten in je sheet, daarom had ik voor elke tijd 2 textboxen aangemaakt. Tevens ook dit omdat er heel veel velden zijn verwezen naar die tijden.

En die kruisverwijzing ben ik mij bewust van inderdaad.

Toch bedankt voor je moeite.
 
Gebruik voor de invoer van datums en tijden de objecten die daarvoor gemaakt zijn (DTPicker).

Zie de bijlage.

Iedere keer als gegevens worden weggeschreven naar het werkblad wordt de volgende datum in het userform getoond.
 

Bijlagen

  • __Werktijdregistratie.xls
    45 KB · Weergaven: 225
Bedankt, ik ben ook geen gevorderd gebruiker. Ik ga er naar kijken morgen. Bedankt!
 
Ik zie dtpicker niet tussen bij Extra> Verwijzingen.

Moet ik hem eerst downloaden of wat moet ik doen?
 
Code:
Private Sub knop_vervolg_Click()
    Blad1.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 3) = Split(datum.Value & Format(tijd1.Value, "|hh:mm") & Format(tijd2.Value, "|hh:mm"), "|")
    With datum
        x4 = CDate(.Value + 1)
        .Day = Day(x4)
        .Month = Month(x4)
        .Year = Year(x4)
    End With
    tijden
End Sub

Zou je hier wat meer uitleg over kunnen geven?

Bedankt.:thumb:
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan