04. juli 2003 - 21:09Der er
6 kommentarer og 1 løsning
Udskrift venlig turnusplan.
Jeg har på jobbet, lavet en turnusplan i Excel. Det meste er som det skal være, det eneste jeg mangler er en måde at få udskrevet planen, en måned ad gangen.
Excel arket er lavet efter følgende opskrift. 6 rækker øverst der er frosset. Dato felter fortløbende nedad. Flettede felter for hver uge, og flettede felter for hver måned.
I udskriften vil jeg gerne have de 6 frosne rækker øverst, og den måned man ønsker udskrevet nedenunder. Der skal også være mulighed for at udskrive flere måneder, med en måned på hver side.
Jeg har lavet 4 felter på arket hvor man kan indtaste hvilken periode man ønsker udskrevet. I felterne skal der være en spærring hvis der bliver indtastet andet end dato værdier. Evt. med en dialogboks der gør opmærksom på fejlindtastningen. Udskrivningen skal aktiveres med en commandbutton.
De 200 point er ikke fordi jeg tror at det er en vanskelig sag for en erfaren programmør, men fordi at jeg ikke selv kan programmere, og derfor ønsker hjælp til en fiks og færdig løsning.
Jeg kan sende Excel filen i en mail, hvis der er en der er interesseret i at påtage sig opgaven.
Flettede celler med ugenummer opløses til normal, ellers kan måneden ikke adskilles.
Private Sub PrintUd_Click() Dim R1 As Integer, K1 As Integer, R2 As Integer, K2 As Integer _ , M As Integer, Y As Integer
If Range("AK3") > Range("AK4") And Range("AM3") = Range("AM4") Then MsgBox " Startmåned er større end slutmåned" & Chr(13) & _ " Tast venligst om" Range("AK3").Select Exit Sub End If
If Range("AM3") = "" Or Range("AM4") = "" Or Range("AK3") = "" Or Range("AK4") = "" Then MsgBox " Alle felter skal udfyldes " & Chr(13) & _ " Tast venligst om" Range("AM3").Select Exit Sub End If
If Range("AK3") > Range("AK4") And Range("AM3") = Range("AM4") Then MsgBox " Startmåned er større end slutmåned" & Chr(13) & _ " Tast venligst om" Range("AK3").Select Exit Sub End If '************************ inddata godkendt ******************** ActiveSheet.PageSetup.PrintArea = "$A:$Z"
For c = 9 To 65000 Cells(c, 2).Select ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell If Cells(c, 2) = "" Then GoTo IkkeFlere M = Int(Month(Cells(c, 2))) Y = Int(Year(Cells(c, 2))) If M = Range("Ak3") And Y = Range("AM3") Then R1 = c K1 = 1 End If If M = Range("Ak4") And Y = Range("AM4") Then R2 = c K2 = 25 GoTo IkkeFlere End If If M = 1 Or M = 3 Or M = 5 Or M = 7 Or M = 8 Or M = 10 Or M = 12 Then c = c + 30 If M = 4 Or M = 6 Or M = 6 Or M = 9 Or M = 11 Then c = c + 29 If Y Mod 4 = 0 And M = 2 Then c = c + 28 If Y Mod 4 <> 0 And M = 2 Then c = c + 27
Range(Cells(R1, K1), Cells(R2, K2)).Select With ActiveSheet.PageSetup .PrintTitleRows = "$1:$8" End With Selection.PrintOut Copies:=1, Collate:=True End Sub
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.