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

Vraag van collega i.v.m. 4/5

Status
Niet open voor verdere reacties.

glda19

Terugkerende gebruiker
Lid geworden
14 jan 2008
Berichten
1.064
Hi
Via het nieuwe menu afwezigheid -> afwezigheidscodes kan die collega zijn 4/5 aan duiden.
Maar dit vind hij te veel werk om zo jaarlijks iedere dag 4/5 aan te duiden.
zou het niet mogelijk zijn om bij soort te werkstelling daar bij 4/5 de mogelijk om een dag te laten in vullen en dan alle dagen van het jaar automatisch laten kleuren met de juiste kleur.
Eens die dagen er staan en bv de collega selecteert een ganse week da zou je de melding moeten krijgen dat er zich al een verlofcode in de selectie bevind.
Langs de afwezigheidscodes werkt het zoals het moet werken.
 

Bijlagen

Zomaar een bestand met de super geheime code. Begrijp je er zelf iets van?
Voor Workbook_Open is dit ruim voldoende:

Code:
Private Sub Workbook_Open()
  If IsError(Evaluate(Year(Date) & "!A1")) Then
    Sheets("VerlofKalender Sjabloon").Copy , Sheets(Sheets.Count)
    With ActiveSheet
      .Name = Year(Date)
      .Protect "glennd29", , , True, True
    End With
  End If
  WeekLijnTrekken
  Sheets("Datablad").Range("B1") = Year(Date)
  bRodelijnWeerGevenAanUit = GetSetting("Verlofkalender", "checkboxstate", "RodelijnWeergevenAanUit", True)
End Sub
 
maar dan zijn de andere niet beveiligd
 
Beveilig je ze toch op voorhand. En anders gebruik je het lusje weer.
 
@vena verklaar deze regel eens
If IsError(Evaluate(Year(Date) & "!A1")) Then
Op welk blad gaat hij de del a1 controleren
 
Hij controleert A1 niet, hij kijkt of er een blad bestaat met als naam het jaar op dat moment.
Nu zou dat dus een blad met de naam 2019 zijn.
 
en wat nu met de vraag van in het begin
 
Omdat er voor de controle een referentie naar een cel moet zijn.
Die A1 is geen verplichte cel, je mag daar bijvoorbeeld ook !ZZ93 gebruiken.
Het resultaat is hetzelfde.
 
maar waarom nog geen antwoord op mijn topic vraag
 
Misschien omdat ik er zo geen antwoord op heb?
 
waar vind ik meer uitleg over die copy functie.
Zou het volgende kunnen ze duiden hun te werkstellig aan dan krijgen ze een input box te zien met de dag dat ze vrij zijn. En dan zo die rangen opzoeken.
Zou dit kunnen maar maar weet juist niet hoe die range bepalen.
Er staat nu 4/5 bij de afwezigheidscodes dan kunnen ze toch 1x per jaar deze aanduiden.
 
Laatst bewerkt:
Het doel van Helpmij.nl is om mensen met specifieke vragen verder te helpen. Hierbij wordt vaak gevraagd om een voorbeeldbestand te plaatsen dat de kern van het probleem weergeeft. Het project dat jij geplaatst hebt, en waar je zelf helemaal niets van begrijpt, voldoet niet aan een voorbeeldbestand. Zoek iemand in die het voor je maakt en waar je realtime mee kan sparren want volgens mij is het nodeloos ingewikkeld en zelf ga je er nooit uitkomen.

Daarnaast is jouw manier van communiceren dermate irritant en onleesbaar dat het toch geen nut heeft om erop te reageren.
 
vena begrijp het bestand zeer goed allemaal eigen code man
en probleem staat duidelijk uitgelegd met.
Ben uwe zever meer dan beu
 
vena begrijp het bestand zeer goed
Hiermee bedoel je waarschijnlijk dat ik de code begrijp. Dat klopt vandaar dat ik het nodeloos ingewikkeld vind. En daarom de suggestie om iemand in te huren.
 
ik bedoel dat ik het zelf goed begrijp.
En waarom nodeloos ingewikkeld ?
 
sorry Venna.
Maar de opties die je gaf bij protrections waren niet correct kreeg een vastloper van het programma. Maar heb er mijn protectie uit programma achtergezet en nu werkt alle 100%
Bedankt ik kende de functie evaluate niet.
 
Code:
Set RngMaandenWatched = Union(Rngjanurai, Rngfebruari, Rngmaart, Rngapril, Rngmei, Rngjuni, Rngjuli, Rngaugustus, Rngseptember, Rngoktober, Rngnovember, Rngdecember)
        Set RngWeekendWatched = Union(RngjanuariWeekend, RngfebruariWeekend, RngmaartWeekend, RngaprilWeekend, RngmeiWeekend, RngjuniWeekend, RngjuliWeekend, RngaugustusWeekend, RngseptemberWeekend, RngoktoberWeekend, RngnovemberWeekend, RngdecemberWeekend)
        Set RngIntersectMaanden = Intersect(RngVerlofBereik, RngMaandenWatched)
        Set RngIntersectWeekenden = Intersect(RngVerlofBereik, RngWeekendWatched)

De set code van de maanden zou ook als volgt kunnen volgens een vriend.
maar zie dan niet hoe ik het ver der moet aanpakken.

Veel eenvoudiger is rngMaanden(12)=array(nothing, Range("B5:F10"), Range("B12:F17"), Range("B19:F24"),…
Zelfde voor weekends. Gezien weekend niet moeten ingevuld worden, denk ik, waarom hier variabelen voorzien. Voor de controles?? Kolommen werkt ook.
Hoe dit doen met kolomen
Zie niet goed wat ik ver der moet doen met die array
ktoberWeekend, RngnovemberWeekend, RngdecemberWeekend)
Set RngIntersectMaanden = Intersect(RngVerlofBereik, RngMaandenWatched)
Set RngIntersectWeekenden = Intersect(RngVerlofBereik, RngWeekendWatched)

[/CODE][/CODE]

De set code van de maanden zou ook als volgt kunnen volgens een vriend.
maar zie dan niet hoe ik het ver der moet aanpakken.

Veel eenvoudiger is rngMaanden(12)=array(nothing, Range("B5:F10"), Range("B12:F17"), Range("B19:F24"),…
Zelfde voor weekends. Gezien weekend niet moeten ingevuld worden, denk ik, waarom hier variabelen voorzien. Voor de controles?? Kolommen werkt ook.
Hoe dit doen met kolomen
Zie niet goed wat ik ver der moet doen met die array
 
Laatst bewerkt door een moderator:
Dit vervangen door een array kan dit.

Hi
Al vast bedankt voor de help
Kan de onderstaande code eenvoudiger geschreven worden.
Kan dit met een array.
Volgens een vriend zou ik onderstaande ook met een array kunnen doen.
hij gaf dit
Code:
rngMaanden(12)=array(nothing, Range("B5:F10"), Range("B12:F17"), Range("B19:F24"),

Dit is mijn code en weet dat ik voor de maanden nu voor 11 maanden als variant declareer en in als range. Dacht dat dit werkte zoals in vb.net niet dus.

Mijn huidige code

Code:
Dim RngIntersect, RngIntersectMaanden, Rngjanurai, Rngfebruari, Rngmaart, Rngapril, Rngmei, Rngjuni, Rngjuli, Rngaugustus, Rngseptember, Rngoktober, Rngnovember, Rngdecember As Range
Dim RngIntersectWeekenden, RngjanuariWeekend, RngfebruariWeekend, RngmaartWeekend, RngaprilWeekend, RngmeiWeekend, RngjuniWeekend, RngjuliWeekend, RngaugustusWeekend, _
RngseptemberWeekend, RngoktoberWeekend, RngnovemberWeekend, RngdecemberWeekend As Range
Dim RngMaandenWatched As Range
Dim RngWeekendWatched As Range
Dim StrGekozenDagDeel As String
Dim BDriehoekIsInBereik As Boolean
Dim BRechthoekIsInBereik As Boolean
Dim StrShapeType As String
Dim shp As Shape
Dim StrDagdeelActiveVorm  As String
Dim StrsoortSymbool As String
Dim RngEmptyCell As Range

' Instellen van de bereiken van de maanden Weekdagen
Set Rngjanuari = Range("B5:F10")
Set Rngfebruari = Range("B12:F17")
Set Rngmaart = Range("B19:F24")
Set Rngapril = Range("B26:F31")
Set Rngmei = Range("B33:F38")
Set Rngjuni = Range("B40:F45")
Set Rngjuli = Range("K4:o10")
Set Rngaugustus = Range("K12:o17")
Set Rngseptember = Range("K19:o24")
Set Rngoktober = Range("K26:o30")
Set Rngnovember = Range("K33:o38")
Set Rngdecember = Range("K40:o45")

'Instellen van de bereiken van de maanden weekenddagen
Set RngjanuariWeekend = Range("G5:H10")
Set RngfebruariWeekend = Range("g12:H17")
Set RngmaartWeekend = Range("g19:H24")
Set RngaprilWeekend = Range("g26:H31")
Set RngmeiWeekend = Range("g33:H38")
Set RngjuniWeekend = Range("g40:H45")
Set RngjuliWeekend = Range("p4:Q10")
Set RngaugustusWeekend = Range("p12:Q17")
Set RngseptemberWeekend = Range("p19:Q24")
Set RngoktoberWeekend = Range("p26:Q30")
Set RngnovemberWeekend = Range("p33:Q38")
Set RngdecemberWeekend = Range("p40:Q45")

 
' De maanden samen voegen tot één bereik
' Door het het codewoord union

'sectie controle
'---------------------------------------------------------------------------------------------
'Controleren op het volgende:
' Kijken of een in de combox een slectie is gemaakt met ee dagdeel zo ja bepalen wat het dagdeel is.
' Bereik (range)
' Kijken of hij niet buiten de kalender valt
' Controleren of er in het bereik geen cellen zijn zonder datum.
' Controleren of de gekozen afwezigheid mag doorlopen in het weekend
' Controleren of er zich al geen afwezigheid in het bereik

' Indien er een de gekozen afwezigheidscode een dagdeel bevat deze afzonderen uit de tekst
' En nagaan met welke vorm dit overeenkomt.
' volledige dag = rechthoek
' Halve dag = driehoek
StrGekozenDagDeel = Right(StrVerLofCodeKeuze, Len(StrVerLofCodeKeuze) - InStrRev(StrVerLofCodeKeuze, " "))
If StrGekozenDagDeel = "voormiddag" Or StrGekozenDagDeel = "namiddag" Then
   StrsoortSymbool = figuur.msoShapeRightTriangle
Else
    StrsoortSymbool = figuur.msoShapeRectangle
End If
    

' Een selectie maken  aan de hand van het Type selctie
' De Selectie kan zijn Range of Rectangle
Select Case strTypeSelection
    Case "Range"
        Set RngVerlofBereik = Selection
        Set RngMaandenWatched = Union(Rngjanurai, Rngfebruari, Rngmaart, Rngapril, Rngmei, Rngjuni, Rngjuli, Rngaugustus, Rngseptember, Rngoktober, Rngnovember, Rngdecember)
        Set RngWeekendWatched = Union(RngjanuariWeekend, RngfebruariWeekend, RngmaartWeekend, RngaprilWeekend, RngmeiWeekend, RngjuniWeekend, RngjuliWeekend, RngaugustusWeekend, RngseptemberWeekend, RngoktoberWeekend, RngnovemberWeekend, RngdecemberWeekend)
        Set RngIntersectMaanden = Intersect(RngVerlofBereik, RngMaandenWatched)
        Set RngIntersectWeekenden = Intersect(RngVerlofBereik, RngWeekendWatched)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan