Hi
Zie hier een deel uit de select case
Ik zou deze graag proberen verkleinen.
Er zijn eigenlijk maar 3 zaken die eigen steeds verschillen
1ste de naam van de afwezigheidscode
2de ik leg een vorm op datum van de kalender en die is ver type afwezigheidscode verschillende
3de de plaats waar de op het datablad waar het aantal bewaard word.
Wat ik wel al wee is dat
Case" kreditdag","verlofdag" zo kunnen samen zetten maar wat dan met de kleur die de vorm moet krijgen en de rij waar het aantal moet bewaard worden op het datablad
Zou ik een 3 array's kunnen gebruiken
1 met alle namen van de afwezigheden in.
2 Met het kleur adress
3 de met de rij op het datablad waar het aantal gekomen afwezigheid moet worden opgeslagen.
En da door loop ik de eerste array om op te zoeken op welke plaats de gekozen afwezigheidscode staat en zo de juiste plaat van de kleur code en rij op het datablad op te zoeken.
En dan de array gebruiken in de select case.
Want is nu een select case waar zeker meer dan 5 x de zelfde code terug komt.
Zie hier een deel uit de select case
Ik zou deze graag proberen verkleinen.
Er zijn eigenlijk maar 3 zaken die eigen steeds verschillen
1ste de naam van de afwezigheidscode
2de ik leg een vorm op datum van de kalender en die is ver type afwezigheidscode verschillende
3de de plaats waar de op het datablad waar het aantal bewaard word.
Wat ik wel al wee is dat
Case" kreditdag","verlofdag" zo kunnen samen zetten maar wat dan met de kleur die de vorm moet krijgen en de rij waar het aantal moet bewaard worden op het datablad
Zou ik een 3 array's kunnen gebruiken
1 met alle namen van de afwezigheden in.
2 Met het kleur adress
3 de met de rij op het datablad waar het aantal gekomen afwezigheid moet worden opgeslagen.
En da door loop ik de eerste array om op te zoeken op welke plaats de gekozen afwezigheidscode staat en zo de juiste plaat van de kleur code en rij op het datablad op te zoeken.
En dan de array gebruiken in de select case.
Want is nu een select case waar zeker meer dan 5 x de zelfde code terug komt.
Code:
Select Case StrVerLofCodeKeuze
Case "Kredietdag" 'Kredietdag (KD)
Set KleurcodeAdres = ActiveSheet.Range("T13")
DblAantalPerAfwezigheidsCode = ActiveSheet.Application.WorksheetFunction.Sum(Range("AB5:AB6").Value)
StrSoortSymboolDagdeel = "Rechthoek"
IntAantalCellenInBereik = RngVerlofBereik.Cells.Count ' Telt het aantal cellen in het geselecteerde bereik
' Nakijken of je geen dagen te veel hebt geselecteerd.
DblTeveelDagenAfwezigheid = TellenAantalAfwezigheidscodes(DblAantalPerAfwezigheidsCode, IntAantalCellenInBereik, StrVerLofCodeKeuze)
If DblTeveelDagenAfwezigheid < 0 Then Exit Sub
' Tekenen van de juiste vorm
' Nieuwe aantal Afwezigheidscode wegschrijven op het datablad op de overeenkomstige rij
Call TekenenSymboolVerlof(RngVerlofBereik, StrSoortSymboolDagdeel, StrVerLofCodeKeuze, KleurcodeAdres)
Worksheets("Datablad").Range("c24").Value = DblAantalafwezigheidsCodeGenomen + IntAantalCellenInBereik
Case "Kredietdag voormiddag" 'Kredietdag voormiddag (KD VM)
Set KleurcodeAdres = ActiveSheet.Range("T13")
DblAantalPerAfwezigheidsCode = ActiveSheet.Application.WorksheetFunction.Sum(Range("ab5:AB6").Value)
StrSoortSymboolDagdeel = "Driehoek VM"
IntAantalCellenInBereik = RngVerlofBereik.Cells.Count ' Telt het aantal cellen in het geselecteerde bereik
' Nakijken of je geen dagen te veel hebt geselecteerd.
DblTeveelDagenAfwezigheid = TellenAantalAfwezigheidscodes(DblAantalPerAfwezigheidsCode, IntAantalCellenInBereik, StrVerLofCodeKeuze)
If DblTeveelDagenAfwezigheid < 0 Then Exit Sub
' Tekenen van de juiste vorm
' Nieuwe aantal Afwezigheidscode wegschrijven op het datablad op de overeenkomstige rij
Call TekenenSymboolVerlof(RngVerlofBereik, StrSoortSymboolDagdeel, StrVerLofCodeKeuze, KleurcodeAdres)
Worksheets("Datablad").Range("c25").Value = DblAantalafwezigheidsCodeGenomen + IntAantalCellenInBereik / 2
Case "Kredietdag namiddag" 'Kredietdag namiddag (KD NM)
Set KleurcodeAdres = ActiveSheet.Range("T13")
DblAantalPerAfwezigheidsCode = ActiveSheet.Application.WorksheetFunction.Sum(Range("ab5:ab6").Value)
StrSoortSymboolDagdeel = "Driehoek NM"
IntAantalCellenInBereik = RngVerlofBereik.Cells.Count ' Telt het aantal cellen in het geselecteerde bereik
' Nakijken of je geen dagen te veel hebt geselecteerd.
DblTeveelDagenAfwezigheid = TellenAantalAfwezigheidscodes(DblAantalPerAfwezigheidsCode, IntAantalCellenInBereik, StrVerLofCodeKeuze)
If DblTeveelDagenAfwezigheid < 0 Then Exit Sub
' Tekenen van de juiste vorm
' Nieuwe aantal Afwezigheidscode wegschrijven op het datablad op de overeenkomstige rij Call TekenenSymboolVerlof(RngVerlofBereik, StrSoortSymboolDagdeel, StrVerLofCodeKeuze, KleurcodeAdres)
Call TekenenSymboolVerlof(RngVerlofBereik, StrSoortSymboolDagdeel, StrVerLofCodeKeuze, KleurcodeAdres)
Worksheets("Datablad").Range("c26").Value = DblAantalafwezigheidsCodeGenomen + IntAantalCellenInBereik / 2
Case "Compensatie onregelematige cyclus" 'Compensatie onregelematige cyclus CX
Set KleurcodeAdres = ActiveSheet.Range("T14")
DblAantalPerAfwezigheidsCode = ActiveSheet.Range("z7").Value
StrSoortSymboolDagdeel = "Rechthoek"
IntAantalCellenInBereik = RngVerlofBereik.Cells.Count ' Telt het aantal cellen in het geselecteerde bereik
' Nakijken of je geen dagen te veel hebt geselecteerd.
DblTeveelDagenAfwezigheid = TellenAantalAfwezigheidscodes(DblAantalPerAfwezigheidsCode, IntAantalCellenInBereik, StrVerLofCodeKeuze)
If DblTeveelDagenAfwezigheid < 0 Then Exit Sub
' Tekenen van de juiste vorm
' Nieuwe aantal Afwezigheidscode wegschrijven op het datablad op de overeenkomstige rij
Call TekenenSymboolVerlof(RngVerlofBereik, StrSoortSymboolDagdeel, StrVerLofCodeKeuze, KleurcodeAdres)
Worksheets("Datablad").Range("c27").Value = DblAantalafwezigheidsCodeGenomen + IntAantalCellenInBereik
Case "Compensatie onregelematige cyclus voormiddag" 'Compensatie onregelematige cyclus voormiddag (Cx VM)
Set KleurcodeAdres = ActiveSheet.Range("T14")
DblAantalPerAfwezigheidsCode = ActiveSheet.Range("ab7").Value
StrSoortSymboolDagdeel = "Driehoek VM"
IntAantalCellenInBereik = RngVerlofBereik.Cells.Count ' Telt het aantal cellen in het geselecteerde bereik
' Nakijken of je geen dagen te veel hebt geselecteerd.
DblTeveelDagenAfwezigheid = TellenAantalAfwezigheidscodes(DblAantalPerAfwezigheidsCode, IntAantalCellenInBereik, StrVerLofCodeKeuze)
If DblTeveelDagenAfwezigheid < 0 Then Exit Sub
' Tekenen van de juiste vorm
' Nieuwe aantal Afwezigheidscode wegschrijven op het datablad op de overeenkomstige rij
Call TekenenSymboolVerlof(RngVerlofBereik, StrSoortSymboolDagdeel, StrVerLofCodeKeuze, KleurcodeAdres)
Worksheets("Datablad").Range("c28").Value = DblAantalafwezigheidsCodeGenomen + IntAantalCellenInBereik / 2
Case "Compensatie onregelematige cyclus namiddag" 'Compensatie onregelematige cyclus namiddag (Cx NM)
Set KleurcodeAdres = ActiveSheet.Range("T14")
DblAantalPerAfwezigheidsCode = ActiveSheet.Range("z7").Value
StrSoortSymboolDagdeel = "Driehoek NM"
IntAantalCellenInBereik = RngVerlofBereik.Cells.Count ' Telt het aantal cellen in het geselecteerde bereik
' Nakijken of je geen dagen te veel hebt geselecteerd.
DblTeveelDagenAfwezigheid = TellenAantalAfwezigheidscodes(DblAantalPerAfwezigheidsCode, IntAantalCellenInBereik, StrVerLofCodeKeuze)
If DblTeveelDagenAfwezigheid < 0 Then Exit Sub ' Tekenen van de juiste vorm
' Nieuwe aantal Afwezigheidscode wegschrijven op het datablad op de overeenkomstige rij
Call TekenenSymboolVerlof(RngVerlofBereik, StrSoortSymboolDagdeel, StrVerLofCodeKeuze, KleurcodeAdres)
Worksheets("Datablad").Range("c29").Value = DblAantalafwezigheidsCodeGenomen + IntAantalCellenInBereik / 2
Case "Verlofdag" 'verlofdag (v)
Set KleurcodeAdres = ActiveSheet.Range("T15")
DblAantalPerAfwezigheidsCode = ActiveSheet.Range("ab3").Value
StrSoortSymboolDagdeel = "Rechthoek"
IntAantalCellenInBereik = RngVerlofBereik.Cells.Count ' Telt het aantal cellen in het geselecteerde bereik
' Nakijken of je geen dagen te veel hebt geselecteerd.
DblTeveelDagenAfwezigheid = TellenAantalAfwezigheidscodes(DblAantalPerAfwezigheidsCode, IntAantalCellenInBereik, StrVerLofCodeKeuze)
If DblTeveelDagenAfwezigheid < 0 Then Exit Sub
' Tekenen van de juiste vorm
' Nieuwe aantal Afwezigheidscode wegschrijven op het datablad op de overeenkomstige rij
Call TekenenSymboolVerlof(RngVerlofBereik, StrSoortSymboolDagdeel, StrVerLofCodeKeuze, KleurcodeAdres)
Worksheets("Datablad").Range("c30").Value = DblAantalafwezigheidsCodeGenomen + IntAantalCellenInBereik
Case "Verlof voormiddag" 'verlof voormiddag (v VM)
Laatst bewerkt: