Ga naar inhoud

Aanbevolen berichten

Geplaatst:

Hallo,

 

Ben een rooster aan het maken maar loop vast.

In A1 kan de datum veranderd worden, de datum voorbeeld 01-01-2017.

C2 en C3 zijn gekoppeld met A1.

D2 en D3 aan C2 en C3 etc.

 

Daar onder worden de diensten in gevuld, N2, N3, V2, A7, A8.

voorbeeld, onder C3 staan verticaal diensten, N2, V2, A8, datum 01-01-2017, op 05-01-2017 staat verticaal V2, V2, V2.

Als ik de datum verander van 01-01-2017 naar 05-01-2017 dan gaan de dagen in C2 en C3 wel mee, maar niet de diensten daar onder, mijn vraag is dan ook hoe kan je dat wel werkend krijgen?

 

Stuur een voorbeeld mee.

 

Groet Cees

 

roster.xlsx

Geplaatst: (aangepast)
2 uren geleden, Storm zei:

C2 en C3 zijn gekoppeld met A1.

D2 en D3 aan C2 en C3 etc.

Je bedoelt waarschijnlijk: C1 en C2 zijn gekoppeld aan A1

en D1 en D2 aan C1 en C2.

 

Quote

Als ik de datum verander van 01-01-2017 naar 05-01-2017 dan gaan de dagen in C2 en C3 wel mee, maar niet de diensten daar onder, mijn vraag is dan ook hoe kan je dat wel werkend krijgen?

Als je de indeling van het blad bovenaan met de datums wil handhaven, dan kan dat niet.

Want als je naar 05-01-2017 wil opschuiven, dan zouden de gegevens van de kolommen C t/m F (4 kolommen) naar links moeten opschuiven. Aangezien je links van kolom C maar 2 kolommen hebt, is dat onmogelijk.

Het is niet verstandig om het blad in te delen zoals je hebt gedaan, want de koppeling van de datums met de gegevens daaronder (die te allen tijde gehandhaafd moet blijven) wordt daarmee verbroken.

Wat je wil kun je wel op een andere manier bereiken, de getallen in rij 2 moet je dan onveranderd laten.

- Typ dus in C2:AG2 de getallen 1 t/m 31 en stel die cellen bij de Celeigenschappen in als "Standaard".

- Typ in C1:

=DATUM(JAAR($A$1);MAAND($A$1);C2)

en kopieer die formule naar D1:AG1 . De celeigenschappen van dit bereik hoef je niet te wijzigen.

- Hetzelfde als hierboven moet je uiteraard ook doen voor de rijen 38 en 39.

- Van de cel A1 kun je best een cel maken met gegevensvalidatie, zodat daar bij de invoer geen fout kan plaatsvinden.

- Rechtsklik links-onderaan op de naam van het blad en kies in het menu: "Programmacode weergeven".

- Plaats in de rechterkolom deze code:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim d As Integer, x As Integer
Columns.Hidden = False
If Not Intersect(Range("a1"), Target) Is Nothing Then
d = Day(Range("a1").Value)
For x = 3 To d - 1
Columns(x).Hidden = True
Next x
End If
End Sub

Met de code worden, bij het kiezen van een datum in A1, de kolommen behorend bij de datums voorafgaand aan de gekozen datum, verborgen. Die kolommen moet je natuurlijk ook weer zichtbaar kunnen maken. Plaats daarvoor in het blad een knop en wijs daar deze macro aan toe:

Sub macro1()
Columns.Hidden = False
End Sub

 

 

aangepast door alpha
×
×
  • Nieuwe aanmaken...

Belangrijke informatie

We hebben cookies geplaatst op je toestel om deze website voor jou beter te kunnen maken. Je kunt de cookie instellingen aanpassen, anders gaan we er van uit dat het goed is om verder te gaan.