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

Rooster met attentie bij teveel diensten

Status
Niet open voor verdere reacties.

SHoekstra

Gebruiker
Lid geworden
9 okt 2018
Berichten
13
Goedendag,

Ik heb een (maand) rooster waarin ik de functie wil dat bij het overschrijden van een max aantal aaneengesloten diensten (6 diensten) de selectie gemarkeerd word zodat deze opvalt.

Nu heb ik her en der wat geprobeerd d.m.v. voorwaardelijke opmaak maar kwam niet tot het gewenste resultaat.

Iemand een die mij kan voorzien van een duwtje in de goede richting?

Ik heb een voorbeeld van een maand rooster bijgevoegd.Bekijk bijlage Voorbeeld rooster.xlsx
 
heb een voorbeeld gemaakt met meer dan 6
blauwe kleur via voorwaardelijke opmaak

Dit is wat ik zoek maar het rooster dient horizontaal gelezen te worden. Doel is dus wanneer er x diensten horizontaal bij één medewerker achtereen zijn gepland dat deze gemarkeerd word.
 
Je kunt ook verhinderen dat daar überhaupt iets ingevuld kan worden:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect(Target, Blad1.Range("L3: AQ10")) Is Nothing Then
    If Join(Application.Transpose(Application.Transpose(Target.Offset(, -6).Resize(, 6))), "") = "111111" Or Join(Application.Transpose(Application.Transpose(Target.Resize(, 6))), "") = "111111" Then Application.Goto Cells(1, Target.Column)
  End If
End Sub
 
Bekijk dit voorbeeldje eens

Dit is een goed begin, dankje. Hoe krijg ik deze voorwaardelijke opmaak ingesteld? Ik snap de formule niet helemaal.

Je kunt ook verhinderen dat daar überhaupt iets ingevuld kan worden:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect(Target, Blad1.Range("L3: AQ10")) Is Nothing Then
    If Join(Application.Transpose(Application.Transpose(Target.Offset(, -6).Resize(, 6))), "") = "111111" Or Join(Application.Transpose(Application.Transpose(Target.Resize(, 6))), "") = "111111" Then Application.Goto Cells(1, Target.Column)
  End If
End Sub

Als ik deze code toevoeg in de editor vraagt hij om een macro? (Sorry mijn VBA kennis is niet erg groot)
 
De code moet achter het betreffende blad.
Klik met rechts op de tab en kies voor programma code weergeven.
Plak daar de code.
 
Ik snap de formule niet helemaal
Hij telt het van de laatste 7 cellen of het aantal ingevulde cellen groter is dan 6
 
Je kunt ook verhinderen dat daar überhaupt iets ingevuld kan worden:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect(Target, Blad1.Range("L3: AQ10")) Is Nothing Then
    If Join(Application.Transpose(Application.Transpose(Target.Offset(, -6).Resize(, 6))), "") = "111111" Or Join(Application.Transpose(Application.Transpose(Target.Resize(, 6))), "") = "111111" Then Application.Goto Cells(1, Target.Column)
  End If
End Sub

Gedaan, werkt tot ik de range aanpas. Dan krijg ik een foutmelding op de oject verwijzing. Wat doe ik verkeerd?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan