Daglijst maken van rooster

Status
Niet open voor verdere reacties.

MEradus

Gebruiker
Lid geworden
25 nov 2012
Berichten
287
Goedemiddag,

Vanaf a.s. maandag begin ik bij een nieuwe werkgever, welke alles wat betreft Excel e.d. nog een beetje "oldschool" doet.
Om het mijzelf iets makkelijker te maken zou ik graag met een vba code, van het maandrooster op de dagen dat ik werk een dagrooster willen maken.
Zodat ik wat meer overzicht krijg. Alleen kan ik niet vinden hoe ik dat het beste kan doen.

In het bestandje tabblad 1 zie je hoe het maandrooster er ongeveer uitziet en in tabblad 2 staat wat ik graag zou willen.

Hopelijk kunnen jullie mij helpen.

Alvast bedankt!
Bekijk bijlage HelpMij_rooster_1.xlsx
 
dit kan zonder VBA:

let op loze spaties achter een naam zie medewerker 10 in jouw bestand.

Ik heb nu even een datum in K3 gezet, maar dit zou je eventueel kunnen vervangen in de formule door VANDAAG().
 

Bijlagen

Laatst bewerkt:
Bedankt voor je reactie, maar dit is niet helemaal wat ik bedoel.
De medewerkers zijn namelijk ook variabel.

Het kan dus zijn dat er bij een medewerker in het rooster RV (rooster vrij), Verlof of zelfs niets staat.
Dan hoeft deze dus niet op de lijst te komen.

Sorry is al ik daar wat onduidelijk in was.
 
Laatst bewerkt:
en wat bedoel je met variabel?

Edit, ik zie nu je uitleg in het bestand pas :(
 
Laatst bewerkt:
Heb net m'n 2e bericht iets aangepast.

"Het kan zijn dat een medewerker niet hoeft te werken op die dag i.v.m. Verlof of iets dergelijks".
Dus dan staat er Verlof of RV (rooster vrij). Als dit het geval is, hoeft deze medewerker niet in het lijstje voor te komen.

Dit was ik vergeten mee te nemen in mijn vraag.

Edit; sorry mijn fout :P
 
Ja, dit is inderdaad wat ik bedoel!
Dit maakt het voor mij straks een heel stuk makkelijker!

Heb ik het goed dat als ik de "Resize" kan aanpassen naar de aantal medewerkers die in het rooster staan?

Dank je wel!
Bij deze in mijn vraag beantwoord!
 
dat heb je helemaal goed, maar pas deze dan indien nodig ook even aan:

Code:
Sheets("Voorbeeld Layout").Range("D4:E15").ClearContents
 
Helemaal top! Zal ik zeker doen!
Ik ga zelf nog even proberen om jouw macro te laten werken zonder dat ik hem in het rooster zelf hoef te zetten.
Ben namelijk bang dat als ik dat doe mijn werkgever zoveel gaat aanpassen in het rooster dat zij alleen maar foutmeldingen krijgt.

Mocht mij dit niet, mag ik dan hier nog even de vraag stellen?
Of zal ik dan een nieuwe vraag openen?
 
bij raakvlak met deze vraag lijkt mij een nieuwe vraag niet wenselijk.
 
Is het makkelijk om de rooster gegevens uit een ander bestand te halen? (Zie het zo dat het tabblad Voorbeeld Rooster, in een ander 'gewoon' bestand staat en vanuit daar moet het dagrooster komen).

Ik heb al geprobeerd om het de code naar een ander workbook te laten kijken.
En ook de gegevens kopieeren en plakken, maar het lijkt me niet te lukken.

Mocht het te veel zijn dan probeer ik het mijn nieuwe werkgever wel uit te leggen zodat ze niet zomaar de gegevens aanpast :).

Wederom alvast bedankt je reactie.
 
Het is vrij eenvoudig om de gegevens uit een ander bestand op te halen. Waarom zijn in de tab 'Voorbeeld Rooster' de rijen 1,2 en 11 leeg? Waarom is kolom B leeg? Is dit in werkelijkheid ook zo? Het 1 keer doorlopen van de gegevens en het in 1 keer wegschrijven is wat efficiënter. Wijzig in blad 'Sheet1' in A1 de datum en je krijgt het rooster in een tabel.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$A$1" Then
    ar = Sheets("Voorbeeld Rooster").Cells(1).CurrentRegion
    t = Application.Match(Format(Target.Value, "d-m-yyyy"), Application.Index(ar, , 1), 0)
    If IsError(t) Then Exit Sub
    Application.AddCustomList Array("V", "D", "T", "L")
    ReDim ar1(UBound(ar, 2) - 1, 1)
    For j = 2 To UBound(ar, 2)
      ar1(j - 2, 0) = ar(1, j)
      ar1(j - 2, 1) = ar(t, j)
    Next j
    With ActiveSheet.ListObjects(1)
      If .ListRows.Count > 0 Then .DataBodyRange.Delete
      .Range.Offset(1).Resize(UBound(ar1), 2) = ar1
      .Range.Sort .Range.Cells(1, 2), , , , , , , xlYes, Application.CustomListCount + 1
    End With
    Application.DeleteCustomList Application.CustomListCount
  End If
End Sub
 

Bijlagen

Die rijen en cellen heb ik leeg gelaten omdat ik niet zeker wist hoe het rooster opgebouwd is.
Maar tussen de data en een rij leeg omdat het hier om een week gaat.

Ik moet zeggen dat jouw code er ook goed uit ziet, alleen laat hij alles staan.
Ook als er geen letter, verlof of RV (rooster vrij) bij staat. En dat is eigenlijk niet de bedoeling.
Als er zo iets bij staat, moet die 'medewerker' verdwijnen uit mijn lijst. Omdat die er niet is.

En je geeft aan dat het heel simpel is om deze informatie uit een ander bestand te halen.
Zou je mij hiermee kunnen helpen?

Ik weet helaas (nog) niet onder welke naam het bestand opgeslagen is.
Heb het rooster namelijk nog maar 1x gezien.

Alvast bedankt voor je hulp!
 
VBA is maatwerk. Als je zelf niet weet hoe het rooster eruit ziet en een blijkbaar niet representatief voorbeeld geplaatst hebt dan zal je de code even moeten aanpassen zodat het wel bruikbaar is.
 
Tuurlijk snap ik dat een voorbeeld goed moet zijn maar kon/kan helaas niet anders.Op dit moment moet ik roeien met de riemen die ik heb. Omdat ik niet alle codes weet of kan vinden vraag ik hulp. En dat ik daarna dan iets moet aanpassen dat zij zo.
Ik zal kijken of ik deze week een beter voorbeeld kan leveren zodat het voorbeeld rooster in elkgeval is wat het moet zijn. Sorry voor de onduidelijkheid.
 
Vanaf a.s. maandag begin ik bij een nieuwe werkgever, welke alles wat betreft Excel e.d. nog een beetje "oldschool" doet.
Als je een wit voetje wil halen dan doe je dat maar ergens anders.

Het is beter dat je zelf probeert om de code te begrijpen en zelf aan te passen. Als er dan nog vragen over zijn dan wordt je vast wel weer verder geholpen.
 
Als je een wit voetje wil halen dan doe je dat maar ergens anders.

Dat is niet de insteek. En ik vindt het jammer dat dit geinsinueerd wordt.

Het is beter dat je zelf probeert om de code te begrijpen en zelf aan te passen.

Dat is ook juist ook de bedoeling.

Maar even goed een goeie avond toegewenst en tot een volgende hulp ronde.
 
Goedemorgen,

Alles zoals hier beschreven werkt helemaal super.
Nu is mijn vraag, is het ook mogelijk om bij het zoeken naar de letters.
De cel met de kleuren groen en of blauw niet mee te nemen?
Zodat de letters wel kunnen blijven staan. ( Kleur blauw is ziek, als de chauffeur weer beter is, moet deze wel 'gewoon' zijn eigen diensten weer hebben).

Ik hoop dat mijn uitleg duidelijk genoeg is en dat er iemand is die mij zou kunnen helpen.
(Uiteraard heb ik Google al geraadpleegd, maar kon het niet vinden).

Bekijk bijlage HelpMij_rooster_1.xlsm
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan