Avatar billede macho Praktikant
30. november 2005 - 16:52 Der er 14 kommentarer og
1 løsning

Vagttørn / Grundtørn - Fortsættelse.

I fortsættelse af http://exp.dk/spm/668364 vil jeg gerne have udvidet funktionen m.h.t. automatisk udfyldelse af en grundvagttørn i en vagtkalender. Mit oprindelige spørgsmål lød sådan her:

************************
I et regneark har jeg arbejdspladsens vagtkalender, som indeholder samtlige 28 medarbejderes grundtørn. Grundtørnen indtaster jeg pt. manuelt i hver enkelt celle (enten "D" eller "N"). Dette tager virkelig lang tid hver måned, at skulle indtaste for hver enkelt!

Grundtørnen kører over otte uger og starter så forfra igen. Er der en måned, hvorpå det kan gøres automatisk, så der i hver enkelt celle automatisk kan skrives "D" eller "N" eller ingenting (fri). Jeg tænker mig, at der jo skal være en startdato for grundtørnen, hvorfra det så skal regnes ud hvad der skal stå i cellen i hele kalendermåneden! Men altså: det er mere end jeg selv kan takle!

************************

Kabbak er kommet frem til en meget fin løsning og jeg har også givet ham velfortjente points.
Jeg var måske lidt hurtig, da jeg sagde, at det var helt som det skulle være.

Efterfølgende har jeg dog rodet lidt mere med regnearket, og det KAN måske gøres bedre. Som det er nu, så må jeg manuelt, hver måned d. 1., ind og finde ud af, hvilket nr. i rækken et vagthold skal starte med. Dette gør jeg selvfølgelig ved at se, hvad de sluttede med i sidste måned, f.eks. nr. 32, og skriver derefter "33" i kolonnen ud for d. 1., før jeg kan køre makroen. Det er bare hæftet med en rimelig stor fejlmargin, at skulle tjekke disse nr. hver måned! Hvis man i stedet kunne sætte en start-dato for tørnens start og man så "bare" skulle ændre måned, køre en makro, og der så blev regnet ud, hvorhenne i tørnen man er nået til. Altså ikke noget med at tjekke selv.

Mon der er en løsning på det?
Avatar billede kabbak Professor
30. november 2005 - 21:56 #1
' Lav i en kolonne på et skjult ark, de 8 uger turnusen varer,
' kopier dem så under hinanden til du mener at du har nok, du kan have 65000 dage, det rækker vel
' Navngiv området som Tur
'
' I det samme ark, kan skal du lave en celle for hver medarbejder, navngiv hver enkelt celle, så du kan kende dem,
' eventuelt deres navn.
' i de celler skriver du datoen hvor de sluttede en turnus.
'
' Funktionen kaldes med:
' =Turnus(Per;B$2)
' her fra celle B3
' den kan nu trækkes til højre til de 31 dage er nået

Public Function Turnus(StartDato As Date, DatoCelle As Date)
Dim Tur As Variant, NR As Integer
If Not DatoCelle = #12:00:00 AM# Then ' værdien hvis cellen er tom
Tur = Range("Tur")
NR = DatoCelle - StartDato
Turnus = Tur(NR, 1)
Else
Turnus = " "
End If
End Function
30. november 2005 - 23:04 #2
Sjovt kabbak - jeg startede også med Commadore VIC-20 i 1985 *S*
Avatar billede kabbak Professor
30. november 2005 - 23:07 #3
ja, flemming, det var tider, det tog kun et par måneder så var den 'out of memery', det var sku ikke meget, man kunne programmere i den.
30. november 2005 - 23:10 #4
smiler - og flere kassettebånd var ikke nok *s*
Avatar billede macho Praktikant
01. december 2005 - 09:43 #5
Kabbak -> tak fordi du gider hjælpe videre :-)

Med din nye funktion

Spørgsmål:
Udgangspunkt: Cellerne (én for hver medarbejder) har jeg navngivet for hver enkelt, så jeg kan kende dem.
Én ting er at skrive en dato for, hvornår turnus'en sluttede for hver enkelt, men hvordan skal jeg definere, at på denne dato var det med en nattevagt (f.eks. vagt nr. 11 i grundtørnen)? Det kan jeg ikke lige gennemskue!

Derudover står der #VÆRDI i de felter, som refererer til en celle, der ikke har en dato - altså alle måneder, som har færre end 31 dage?
Avatar billede kabbak Professor
01. december 2005 - 10:02 #6
>(Én ting er at skrive en dato for, hvornår turnus'en sluttede for hver enkelt,)
Jeg gik ud fra at alle starter forfra i turnusen, så datoen er dagen før de starter forfra.

2.
udskift
If Not DatoCelle = #12:00:00 AM# Then ' værdien hvis cellen er tom
til
If Not DatoCelle = #12:00:00 AM# or  Not DatoCelle ="" Then ' værdien hvis cellen er tom
Avatar billede macho Praktikant
01. december 2005 - 10:40 #7
Åh ja, kabbak - jeg havde gennemskuet den med datoen, kort efter jeg havde skrevet indlæg 09:43:08  ;-)

2.
Hvis jeg skriver
If Not DatoCelle = #12:00:00 AM# Or Not DatoCelle = "" Then ' værdien hvis cellen er tom
i stedet for
If Not DatoCelle = #12:00:00 AM# Then ' værdien hvis cellen er tom

får jeg fejl i alle felterne: #VÆRDI, hvilket undrer mig gevaldigt?
Avatar billede macho Praktikant
01. december 2005 - 11:25 #8
Hvis jeg i min liste over vagter erstatter fridage (tomme felter) med et mellemrum, og samtidig beholder linjen
If Not DatoCelle = #12:00:00 AM# Then ' værdien hvis cellen er tom
som den var oprindeligt, skriver den fint grundtørnen i de rigtige celler og et mellemrum i de celler, hvor man har fri. Det kan jeg sagtens leve med! Hvis jeg beholder det sådan er det kun i cellerne, som refererer til en "ikke-eksisterende" dato - altså igen måneder, som har færre end 31 dage, hvor der står #VÆRDI (fejl i formel). Hvis dette kan rettes er jeg ovenud tilfreds med resultatet.
Avatar billede kabbak Professor
01. december 2005 - 12:04 #9
hvad er der i de celler hvor dag 31 skulle stå, en formel ??
Avatar billede macho Praktikant
01. december 2005 - 12:31 #10
Ja, en formel:

=HVIS(AE2<>"";HVIS(MÅNED(AE2+1)=MÅNED($AJ$2);AE2+1;"");"")

Brugerdefineret som "d" for kun at vise datoen.
Avatar billede macho Praktikant
01. december 2005 - 12:33 #11
AE2 er jo så datoen før (d. 30.)
Avatar billede kabbak Professor
01. december 2005 - 12:52 #12
=HVIS(B2<>"";Turnus(Per;B2);"")
Avatar billede kabbak Professor
01. december 2005 - 12:53 #13
=HVIS(B2<>"";Turnus(Per;B$2);"")
Avatar billede macho Praktikant
01. december 2005 - 13:10 #14
Perfekt kabbak - nu ser jeg ikke flere fejl. Du skal ha' mange tak for din hjælp/tid.
Giv mig et svar ;-)
Avatar billede kabbak Professor
01. december 2005 - 15:13 #15
et svar ;-))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester