hulp met userform

Status
Niet open voor verdere reacties.

flipper52

Gebruiker
Lid geworden
21 dec 2006
Berichten
79
Hallo,

In het volgende bestand vind je op Blad1 een knop die een userform opent.
Met daarin volgende gegevens:
Datum
Code
Tijd1
Tijd2
Bereken Tijd
Anders

Maar mijn vraag is, is het mogelijk om 2 Datums te maken, één start Datum en één tot en met Datum.
vb: als ik in code "V" van verlof in vul, dan zou VBA het aantal werkdagen tussen de ingegeven data moeten opslaan in "Blad2"
Alsook automatish mijn werkuren invullen.
Ma 3:00
Di 3:00
Wo 3:00
Do 3:00
Vr 4:30

groeten,Rudy Bekijk bijlage Kalender ISS.xlsm
 
Test het maar eens.
Als je een datum hebt in gebracht met de kalender, daarna een "V" hebt gekozen, komt een tweede textbox die je weer kan vullen met de kalender.
 

Bijlagen

  • Kalender ISS.xlsm
    68 KB · Weergaven: 37
Hallo, HSV

Dank u voor de reactie en het voorbeeld.
Dit gaat reeds in de goede richting, maar wanneer je twee datums inbrengt, schrijft hij deze weg op deze manier "25/08/2014 t/m 6/09/2014" en dit in één cel.
Ik had gehoopt, dat hij elke werkdag apart inbrengt met in de volgende kolom mijn werkuren van de dag (indien mogelijk).

Ik heb het userform iets aangepast, alsook heb ik het voorbeeld geplaats in Blad2.

Nu verschijnt de tweede datum enkel wanneer je "V" invult, maar dat mag bij elke letter.

Hoe jullie dit allemaal voor elkaar krijgen is voorlopig voor mij nog een raadsel.
zoals eerder verteld, heb ik een boek aangeschaft heb om VBA te leren, maar tot op heden is dit alles voor mij nog onbegrijpelijk.


Groeten, Rudy Bekijk bijlage Kalender ISS2 - kopie.xlsm
 
Laatst bewerkt:
De nettowerkdagen per dag neerzetten is geen probleem, maar welke uren wil je er bij nu je de comboboxes hebt verwijderd.
 
zoals ik in Blad2 geplaats heb

MA 3:00
DI 3:00
WO 3:00
DO 3:00
VR 4:30

Ik hoopte dat men dat ook in code kan schrijven, dat wanneer hij de werkdagen wegschrijft, hij ook automatisch in de derde kolom bij vb maandag 3:00 plaats en bij een vrijdag 4:30.
Misschien is dit onmogelijk.
 
Bekijk het maar eens.
 

Bijlagen

  • Kalender ISS2 - kopie.xlsm
    62,8 KB · Weergaven: 35
Code:
Private Sub CmdSave_Click()
Dim testWorkday As Date
For testWorkday = datum To Datum2
    If Weekday(testWorkday, 2) < 6 Then
       Blad2.Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(, 5) = Array(Format(testWorkday, "ddd"), Format(testWorkday, "dd-mm-yyyy"), _
                CboCode.Value, Format(IIf(Weekday(testWorkday, 2) = 5, "4:30", "3:00"), "h:mm"), TxtReden.Value)
    End If
Next
Unload Me
End Sub
 
Eerst en vooral wil ik Warme bakkertje bedanken voor de deelname, maar de bedoeling is dat de gegevens worden opgeslagen als volgt.
Kolom A (Datum)
Kolom B (Code)
Kolom C (Uren)
Kolom D (reden)
Dus zonder de dagen, die dienden enkel als voorbeeld voor welke dagen ik welke uren werk.

Tevens wil ik jullie beiden mede delen dat ik een probleem heb ontdekt, volgens mij vinden mijn formules de datum in Blad2 niet meer.
Normaal zou na inbreng van gegevens, deze moeten verschijnen in de kalender op Blad1.
vb: cel C18 = "15"
cel D18 = "V"
cel E18 = "3:00"
 
Zie bijlage.
 

Bijlagen

  • Kalender ISS2 - kopie.xlsm
    63,1 KB · Weergaven: 35
Dit werkt perfect, nu de afwerking.
Kan je deze code plaatsen in dit bestand A.U.B., je zal zien dat de twee comboboxes terug aanwezig zijn.
Dit voor in het geval ik op een dag vroeger stop met werken door omstandigheden, en ik de uren manueel moet invullen.
Ik heb het zelf geprobeerd, maar hij geeft steeds een fout.

Ik heb reeds de code aangepast bij Private Sub CmdSave_Click().
 
Mijn excuses, door mijn haast deze middag, vergeten van bestand te plaatsen.

Mag ik tevens nog een laatste gunst vragen,
De codes werken uitstekend, maar nu moet je twee datums plus letter inbrengen alvorens hij iets automatisch wil opslaan (dit mag zo blijven).
Kan dit ook nadat je maar één datum plus letter hebt ingebracht.
Daarna is het volledig af.

Bekijk bijlage Kalender ISS6.xlsm
 
De functie Nettowerkdagen werkt met een begin- en einddatum.
Het zou kunnen met één textbox als begindatum, maar dan krijg je "vandaag" als einddatum.
 
Deze werkt met 2 datums.
 

Bijlagen

  • Kalender ISS6.xlsm
    64,8 KB · Weergaven: 36
Het spijt mij om u mede te delen dat dit niet de oplossing is, wellicht heeft HSV gelijk als hij schrijft "De functie Nettowerkdagen werkt met een begin- en einddatum"

Daarom heb ik het over een andere boeg gegooid, misschien eenvoudiger.
In het volgende bestand heb ik twee UserForms aangemaakt.
één voor de gegevens per dag in te brengen en één om meerdere dagen te gelijk in te brengen.
Maar er is reeds een probleem.
Als ik in het eerste UserForm om de knop druk "Meerdere Dagen" dan verschijnt Userform2 ( dit met dank aan jullie).
Indien ik een datum wil inbrengen in UserForm2 dan schrijft hij deze datum weg in UserForm1.
Hoe kan dit aangepast Worden.

Bekijk bijlage Kalender ISS.xlsm
 
Als ik 2 datums invul en dan de V selecteer krijg ik toch netjes het aantal verlofdagen. Ik begrijp jouw reactie dus helemaal niet.
Hoe dikwijls ga je nu nog van gedacht veranderen ??
Ik hou het hier voor bekeken want jij wisselt even snel van layout als het draaien van de wind, en wij moeten er elke keer weer de nieuwe code bijdenken.
Denk eerst goed na wat je nu eigenlijk wil en kom dan terug met een definitief ontwerp zodat in 1 keer de correcte code kan gegeven worden.
 
Neem maar eens een kijkje in het bestand, als je zoals jij zegt twee datums inbrengt en dan de letter "V", dan krijg ik in blad!2 dit resultaat "28/08/2014 t/m 28/08/2014 V 0:00".
Breng ik een andere letter in dan werkt het juist "27/08/2014 B 3:00".

Bekijk bijlage Kalender ISS6.xlsm

Ik ben gewoon veranderd om het jullie misschien wat gemakkelijker te maken.
Maar bedankt voor je reactie.


Er rest mij nu nog enkel jullie van harte te bedanken, ik laat het nu voor bekeken.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan