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

Vakantieplanning

Status
Niet open voor verdere reacties.

Amstellovich1967

Gebruiker
Lid geworden
25 jul 2017
Berichten
98
Beste mensen,
Ik ben bezig met het opzetten van een vakantieplanning.
De bedoeling is dan om middel een invoerscherm de vakantie te plannen per persoon zodat de tabbladen ter info ingezien en geprint kan worden maar niets gewijzigd mag worden door anderen.

Graag zou ik willen weten of het volgende mogelijk is:
1. Doormiddel van het selecteren of ingeven (bijvoorbeeld cel A2) van een jaartal (bijv. 2020), dat de datums automatisch worden weergegeven in de cellen C5 t/m GB5 en hetzelfde op de andere tabblad maar dan doorberekend. (ze bevatten allebei 26 weken)
2. Middels een invulformulier een naam medewerker te selecteren (Dropdownbox), een "datum van" en een "datum tot en met" in te kunnen geven en dat deze datums automatisch worden ingekleurd in 1 van de 2 tabbladen onder de juiste naam en datum? Deze cellen zouden dan zwart moeten kleuren en een cijfer 1 in zwarte tekst bevatten.
3. Het zou ook mogelijk moeten zijn om een geplande vakantie van een medewerker te annuleren en de cellen weer blanco/leeg maken.
4. van alle mutaties die gedaan worden in een aparte tabel (apart tabblad?) geplaatst kan worden zodat er geverifieert kan worden wanneer een mutatie is gedaan en door wie?
5. een opgegeven vakantieperiode (schoolvakantie) vooraf in te laten kleuren d.m.v. een invulscherm (kleur groen).

Wie zou mij hierbij kunnen helpen en/of adviseren hoe te werk te gaan? Zelf heb ik niet zo veel ervaring met Excel maar wil graag alles leren.
Misschien zijn er beter ideeën?

Groet,
René
 

Bijlagen

  • VAKANTIEPLANNING.xls
    356,5 KB · Weergaven: 75
Hallo Rene,

De eisen die je stelt maken het wel erg ingewikkeld en dat is dan ook de reden waarom je nog geen reactie hebt gekregen. Ik heb je bestand (behoorlijk) aangepast, zodat bij voorbeeld de datums mee veranderen als je een ander jaar kiest, ik heb een invulformulier gemaakt, maar de manier waarop je wilt dat de informatie uit dat formulier wordt weggeschreven in de kalender gaat mij boven de "VBA-pet" dus heb ik maar een tabblad Aanvraag gemaakt waar de informatie naar toegeschreven wordt.

Misschien dat een ander er wel een oplossing voor heeft.

Succes!
 

Bijlagen

  • VAKANTIEPLANNING.xlsm
    162,3 KB · Weergaven: 96
@JanBG:

Bedankt voor je info en hulp. Het zijn echter geen eisen maar wensen om iets moois te voor elkaar te krijgen en nog functioneel ook.
Ik ben zeer blij met je aanpassingen, de mutatie werkt ook, alleen is het mogelijk niet voor elkaar te krijgen om de mutatie van de vakantie ook om te zetten in het maandrooster zodat deze dan de betreffende dag(en) inkleurt? Of doe ik iets verkeerds?

Groet,
Rene
 
Hallo Rene,

Zoals ik al zei: ik krijg dat niet voor elkaar en als ik heel eerlijk ben, denk ik ook niet dat wat je wenst kan met VBA, misschien een andere helper wel
 
- Het onmogelijke wordt hier direct gedaan.
- Wonderen duren iets langer.
- Op verzoek wordt hier getoverd.
- Af en toe gebeurt hier een mirakel.
Welke wordt het ?
 
ik ken minstens 5 dagelijkse bezoekers, die dit probleem op minder dan een uur en binnen de 30-50 programmaregels (ik gok eerder op 30) oplossen.
Maar dan eerder met de layout zoals door TS aangereikt werd, niet met die maandelijkse roosters.
Probleem is eerder dat dit soort vragen al zo vaak voorbij gekomen zijn, dat er geen uitdaging meer op zit.
 
Laatst bewerkt:
Het kan niet in deze opzet tenzij er geen verloop van personeel en functies is. Waarom zijn er drie blokken met 'Verdeler 2'? Waarom wil je 2 regels voor een aanvraag? Om formules eenvoudig te houden kan je het beter op op 1 regel houden met 2 extra kolommen.
Waarom een tab van januari t/m juni en een tab voor juli-december? Hoe ga je dan zien of iemand van 15-juni t/m 15- juli verlof heeft?
Zonder dus ook maar 1 regel code; Eerst even nadenken over de opzet en alle variabelen die je hebt. Het visualiseren in welke vorm dan ook is dan een makkie.
 
Beste Experts,

Zoals ik hier wekelijks lees, krijgen jullie heel veel voor elkaar en daar heb ik bewondering voor.
@VenA: De drie blokken zijn 3 teams die werken op een afdeling. Het zijn vaste teams. Daar er maar 4 personen vrij kunnen zijn per dag willen we dit ook visualiseren door per team aan te geven hoeveel er al vrij zijn. Elk blok is een apart Team.
Met twee regels bedoel je, een aanvraag en een annulering? De mutatie is belangrijk om na te gaan wie de mutatie heeft gedaan. Maar ik ga er van uit dat jou oplossing beter zou werken met de kolommen.
Ik had geprobeerd de 365 dagen in 1 tabblad te krijgen maar dat gaat niet, er zijn hiervoor te weinig kolommen, vandaar dat ik er 2 hebt aangemaakt maar dat wordt dus ingewikkeld.

Het is zo te lezen een enorme klus om dit voor elkaar te krijgen maar ik ben blij met alle hulp die al wordt aangeboden.

Groet,
Rene
 
iets voor tussen de soep en de patatten
 

Bijlagen

  • VAKANTIEPLANNING (2).xlsx
    83 KB · Weergaven: 84
@Cow18: Wow dit al te gek zeg, en gewoon genoeg kolommen. Hoe heb je dat voor elkaar gekregen.
Is het aan de hand van deze layout wel mogelijk om middels het invoerscherm vakantie te plannen zodat de dagen worden ingekleurd?

Ik ben hier al enorm dankbaar voor. ;-)

Groet,
René
 
ik ken minstens 5 dagelijkse bezoekers, die dit probleem op minder dan een uur en binnen de 30-50 programmaregels (ik gok eerder op 30) oplossen.

Met de helft lukt ook nog wel maar de subtotalen zitten een beetje in de weg.:d

Code:
Private Sub Worksheet_Activate()
  ar = Sheets("Rooster").Cells(6, 1).CurrentRegion.Offset(1).Resize(1)
  ar1 = Sheets("Aanvraag").ListObjects(1).DataBodyRange
  For Each arr In Sheets("Rooster").Cells(8, 1).CurrentRegion.Resize(, 1).SpecialCells(2).Areas
    If Application.Sum(arr.Resize(, UBound(ar, 2))) > 0 Then arr.Resize(, UBound(ar, 2)).SpecialCells(2, 1).ClearContents
    ar2 = arr.Resize(, UBound(ar, 2))
    For j = 1 To UBound(ar2)
      For j1 = 1 To UBound(ar1)
        If ar2(j, 2) = ar1(j1, 2) Then
          For jj = 3 To UBound(ar, 2)
            If ar(1, jj) >= ar1(j1, 3) And ar(1, jj) <= ar1(j1, 4) And ar2(j, jj) = "" And Weekday(ar(1, jj), 2) < 6 Then ar2(j, jj) = IIf(ar1(j1, 7) = "Goedgekeurd", 1, 2)
          Next jj
        End If
      Next j1
    Next j
    arr.Cells(1).Resize(UBound(ar2), UBound(ar2, 2)) = ar2
  Next arr
End Sub

@Amstellovich1967, Je hebt .xls bestand gebruikt. Dit is een bestandsindeling van versies voor XL_2007. Met als beperking dat je maar 256 kolommen tot je beschikking hebt. In de nieuwere versies heb je de beschikking over ruim 16000 kolommen.

In het bestandje heb ik in de tab 'Aanvraag' van de gegevens een tabel gemaakt en 2 kolommen met de status en de 2e verantwoordelijke toegevoegd. Alles wat je muteert/aanvult in deze tabel wordt bij een klik op de tab 'Rooster' aangepast in de vakantieplanning.
 

Bijlagen

  • VAKANTIEPLANNING (2).xlsb
    57,1 KB · Weergaven: 50
Laatst bewerkt:
@VenA,
Goedemorgen, heel fijn dat je me helpt echter gebeurt er niets als ik de tabel invult en op Rooster klik.
Ik heb nog 3 vraagjes:

- waar dient GOEDGEKEURD en AFGEKEURD voor in het tabblad rooster? Wordt dit bijgehouden want ik zie geen formule staan.?
- Is het mogelijk om in tabblad AANVRAAG de namen vd medewerkers, Verantwoordelijke en item te selecteren middels een lijst ipv in te vullen?
- Hoe kom ik bij de code die je hebt gebruikt om dit zo te laten invullen in tabblad Rooster? Dan kan ik dat bestuderen en proberen te begrijpen.

Nogmaals veel dank.
René
 
Ik had op het laatst nog een legenda toegevoegd hierdoor werd de variabele ar niet correct gevuld met als resultaat een leeg rooster.

  • Goedgekeurd en Afgekeurd geven de status van de verlofaanvraag op 1 regel aan. Dit moeten handmatig ingevuld worden. Je kan hier natuurlijk meerdere statussen voor gebruiken maar ik ken jullie proces niet. Net als het mogelijk is om ook de verschillende types verlof weer te laten geven.
  • Gegevens uit een lijst halen kan dmv datavalidatie. Zie het voorbeeld van @JanBG in #2 voor bv het jaar.
  • Rechtsklik op de tab Rooster en klik op View Code. Met <Alt> + <F11> kom je ook in de VB-editor.
 

Bijlagen

  • VAKANTIEPLANNING (2).xlsb
    57,6 KB · Weergaven: 66
@VenA:
Dat ziet er geweldig uit zeg.
Alleen als ik een nu geplande vakantie wil annuleren of naderhand afkeurd dan haalt ie de geplande vakantie er niet uit, zou dat wel kunnen?
Hij slaat nu de weekenden over, kunnen deze ook meegenomen worden in de selectie?

Het aanpassen van de lijst (validatie gaat wel lukken ;-))

Mocht je nog tijd en zin hebben.......graag.

Groet,
Rene
 
Vakantieplanning

Hallo JanBG,

Ik had nog even een vraagje, de button Invoer die je voor me gemaakt hebt, hoe kan ik zien wat voor code hierachter zit om te begrijpen wat de button doet.


Groet,
Rene


Hallo Rene,

Ik reageer niet op privéberichten zoals hierboven, omdat de hele gedachte van dit forum is om kennis en ervaringen te delen. Dat gezegd hebbende de ie code is:
Code:
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub
 
Zonder gebruik van een Userform aangezien het proces niet duidelijk is.

In de tab 'Data' kan je van alles wijzigingen behalve de rode cellen. Hier staan formules en kan je beter vanaf blijven. (Is een beveiligd blad zonder wachtwoord)
Als je in de eerste tabel nieuwe vakanties toevoegt dan moet je een begin en einddatum invoeren en rekening houden met het jaar. De kerstvakantie valt meestal in 2 jaren. De Kerstvakantie van 2018 is in 2019 van 01-01-2019 t/m 06-01-2019 en de Kerstvakantie van 2019 is in 2019 van 21-12-2019 t/m 31-12-2019. In deze tabel kan je ook aangeven hoe je feestdagen wil laten zien in de kalender en of je ze wil zien in de kalender.

In de tab 'Aanvraag' kan je nieuwe aanvragen invoeren of de status van aanvragen aanpassen. Bij het wijzigen krijg je vanzelf een nieuwe 'datumstempel'

In de tab 'Rooster'
  • Een nieuw jaar selecteren in A2 (De gegevens worden opgehaald met de instellingen uit de kalender in de tab 'Data')
  • De hele tabel uit de tab 'Aanvraag' visualiseren door in H1:H3 of M1:M2 te kiezen uit of Ja of Nee
 

Bijlagen

  • VAKANTIEPLANNING (2.1).xlsb
    69,7 KB · Weergaven: 103
@VenA:

Je hebt er wederom veel tijd ingestoken en het resultaat mag er dan ook zijn. Mijn oprechte complimenten.
Ziet er heel goed zeg. Ik ga het in gebruik nemen en proberen alles te begrijpen hoe het is opgebouwd qua formules.

Super bedankt allemaal.
René
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan