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

Cellen automatisch aanpassen

Status
Niet open voor verdere reacties.

Sytse1

Gebruiker
Lid geworden
9 aug 2007
Berichten
584
Office versie
miDer
Elk jaar worden voor zeker 10 medewerkers in Excel een verlof c.q. afwezigheids- werkmap gemaakt.
Er is voor een bepaalde structuur gekozen.
De regel datum wordt getoond met 1 t/m 31
Meestal begint op 1 januari niet op de dag waarop 1 januari in het vorig jaar begon.
Zeker niet als het ook nog een schrikkeljaar is.
Mijn vraag is de volgende.
is het mogelijk om op basis van een jaar (rekening houdende met een schrikkeljaar) in vba de cellen per maand met de juiste dag aanduiding (m=maandag; d=dinsdag enz) in te vullen.
Bijgaand een werkblad met een niet helemaal juist ingevulde dagaanduiding.
Om het extra mooi te maken zouden de cellen met eventuele gegevens gewist moeten worden.
De cellen onder de zaterdag en zondag moeten een andere kleur moeten krijgen.
Onder aan in het werkblad is een knop waar op basis van het actuele jaar of een zelf in te vullen jaar de feestdagen worden getoond.
Misschien een ingewikkelde vraag maar wellicht kan ik op weg geholpen worden.
bvd. Sytse

Bekijk bijlage Verlofkaart 2019.xlsm
 
Meestal begint op 1 januari niet op de dag waarop 1 januari in het vorig jaar begon.
Zeg maar nooit ipv meestal.

Bekijk mijn voorstel eens.
Vul in cel Q 1 het jaar in en alles wordt aan gepast ook met schrikkeljaren gaat het goed.

Als je het tabblad naam veranderd dan verandert automatisch ook cel I1 mee.

Feestdagen zijn nu ook mee genomen.
 

Bijlagen

  • Verlofkaart 2019_2.xlsm
    46,2 KB · Weergaven: 66
Laatst bewerkt:
Geweldig bedankt.
Ik ga ook even je code bekijken.
Ik werk bijna altijd met Access maar wil ook eens Excel uitproberen.
De door mij gemaakte toepassing voor het registreren van niet werkzame uren loopt in Access tot 2030.
De code voor de jaarlijkse vrije dagen komt dan ook uit Access.
Maar werkt ook in Excel.
(Learning all the time)
 
Ik dacht dat met vba was opgelost maar je hebt dit met formules gerealiseerd
Knap als het niet met VBA nodig is.
2020 is een schrikkeljaar maar daar gaat het werkblad toch je formule de fout in.
29 februari valt op een zaterdag maar er wordt een di getoond?
Je formule =ALS(MAAND(AC9)<MAAND(AC9+1);""; MAAND(AC9)+1) zou moeten geven za want in AC9 staat vr
 
=ALS(MAAND(AC9)<MAAND(AC9+1);""; MAAND(AC9)+1)

Is inderdaad een klein foutje maak er het volgende van:

Code:
=ALS(MAAND(AC9)<MAAND(AC9+1);""; AC9+1)
 
Aan allen bedankt.
Ik kan er meer verder.
 
Popipipo en JanBG,
Beide werkbladen werken uitstekend.
Ik heb de cellen beveiligd en de formules niet zichtbaar gemaakt.
Ik kan er niet achter komen hoe jullie de feestdagen cellen een kleurtje gegeven hebben.
Wellicht kan je mij dit vertellen.
Het werkblad is beveiligd en gekopieerd voor 10 medewerkers.
Is het ook mogelijk om in 1 keer alle werkbladen met het nieuwe jaar aan te passen.
Dan zou er een msgbox aan de wijziging vooraf moeten gaan.
Met de vraag of dit wel gewenst is en dat alle ingevulde gegevens worden verwijderd.
Tevens het advies om de huidige eerst op te slaan.
Middels de knop Annuleren kan de gebruiker zich nog bezinnen.
 
De cellen voor de feestdagen kun je o.a. een kleurtje geven door te werken met Voorwaardelijke opmaak
 
Hoi Sytse,

Zoals Koetsie al zei: met voorwaardelijke opmaak. In mijn document met de volgende formule in voorwaardelijke opmaak voor eerste Paasdag:

Code:
=VERT.ZOEKEN(B15;Feestdagen!$A1:$C11;3;ONWAAR)
 
Laatst bewerkt:
JanBG,
Ziet er geweldig uit.
Dit is wat ik bedoel.
Ik kan een werkblad kopiëren tot het gewenste aantal.
Wellicht moet ik bij het vba nog naar het bereik van de knop in samenhang met het aantal werkbladen kijken.
En dan een totaal overzicht van elke medewerker.
Het totaal overzicht wordt bij elke invulling aangepast.
Bedankt voor het aangepaste werkblad.
 
Ik zie het al.
For Each ws In ThisWorkbook.Worksheets
Geld voor alle aanwezige werkbladen.
 
Er zit nog een klein foutje in wat betreft koningsdag deze valt namelijk nooit op een zondag
Als 27 april op een zondag valt dan wordt koningsdag op 26 april gevierd.

In mijn bestandje uit #2 gaat het wel goed.
 
In plaats van de kalender van 2018 te leggen en dat te gebruiken voor 2019 kun je eenvoudiger een leeg bestand als sjaboon gebruiken.
 
Popipipo en anderen
Een goede suggestie voor een sjabloon maar ik gebruik de werkmap zelf niet.
Het is voor een tweetal vestigingen van mijn zoon.
Ik paste elk jaar de werkbladen aan.
Omdat ik aardig goed met Access overweg kan had ik een toepassing gemaakt die tot zeker 2030 moeiteloos gebruikt kon worden.
Maar de medewerkers waren vertrouwd met een Excel werkblad.
Vandaar mijn poging om een werkmap te automatiseren die de komende jaren probleemloos kan worden gebruikt zonder dat ik het elk jaar moet aanpassen.
Ik heb de wijze van kleurinvulling kunnen bestuderen (tip van Koetsie).
En de commanbutton van Janbg.
Zo leer ik snel bij.
Ik ga nu nog een totaalblad per maand van alle medewerkers maken waarvan de gegevens dan uit het werkblad van elke medewerker moet komen. Voordeel dat bij hij wijzigen van het jaar het totaal overzicht ook wordt geschoond. Ik moet alleen nog uitvinden wat het beste is zodat er snel een blj aangesloten kan worden. Bedankt voor alle medewerking.
 
Omdat ik aardig goed met Access overweg kan had ik een toepassing gemaakt die tot zeker 2030 moeiteloos gebruikt kon worden.
Wat gaat er mis na 2030? In Excel kan je (niet helemaal waar) net zo gestructureerd een tabel opzetten als in Access. In Access maak je toch ook geen tabel per medewerker waarom wel in Excel? Wat je nu in Excel hebt gemaakt is niets anders dan wat je normaal gesproken in Access met een rapport zou maken alleen wil je nu de gebruikers het resultaat laten invoeren in het 'rapport'?

Voor het berekenen van totalen met voorwaarden is sumif uitgevonden.
ipv
Code:
=IF(B7="v";B8;0)+IF(C7="v";C8;0)+IF(D7="v";D8;0)+IF(E7="v";E8;0)+IF(F7="v";F8;0)+IF(G7="v";G8;0)+IF(H7="v";H8;0)+IF(I7="v";I8;0)+IF(J7="v";J8;0)+IF(K7="v";K8;0)+IF(L7="v";L8;0)+IF(M7="v";M8;0)+IF(N7="v";N8;0)+IF(O7="v";O8;0)+IF(P7="v";P8;0)+IF(Q7="v";Q8;0)+IF(R7="v";R8;0)+IF(S7="v";S8;0)+IF(T7="v";T8;0)+IF(U7="v";U8;0)+IF(V7="v";V8;0)+IF(W7="v";W8;0)+IF(X7="v";X8;0)+IF(Y7="v";Y8;0)+IF(Z7="v";Z8;0)+IF(AA7="v";AA8;0)+IF(AB7="v";AB8;0)+IF(AC7="v";AC8;0)+IF(AD7="v";AD8;0)+IF(AE7="v";AE8;0)+IF(AF7="v";AF8;0)

Kan je ook dit gebruiken.
Code:
=SUMIF($B7:$AF7;LEFT(AH$2;1);$B8:$AF8)

Dit werkt ook voor de andere kolommen.

Nb. Cellen waar je getallen wil invoeren kan je beter niet de eigenschap text meegeven.
 
Laatst bewerkt:
Beste VenH,
Na 2030 is misschien 2031. Maar de toepassing in Access heeft een tabel tot 2030.Geen probleem om dit tot weet ik veel in te vullen.
Maar beginnend in Excel weet ik ook wel dat een regel in Excel te vergelijken is met een record.
Maar een database toepassing is wel iets heel anders dan een Excel werkblad.
Je code
Code:
=SUMIF($B7:$AF7;LEFT(AH$2;1);$B8:$AF8)
ziet volgens mij het v van verlof over het hoofd.
Maar misschien zie ik iets over het hoofd.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan