Avatar billede steelman Novice
29. juni 2011 - 17:14 Der er 10 kommentarer og
1 løsning

Indsætte uge numre

Hej,

Jeg har lavet et skema, hvor der i et felt skal stå uge nummer. Skemaet fylder en hel side.

Jeg skal printe skemaer ud for ca 20 uger og jeg tænker at der må være en måde hvorpå jeg kan få excel til automatisk at ændre ugenummeret så det er fortløbende. Så der kan printes en side ud hvor ugenummeret er 1, 2, 3, osv.

Hvordan kan jeg gøre det nemmest? Eller skal jeg printe skemaet ud -> manuelt ændre tallet -> printe skemaet ud -> manuelt ændre tallet igen -> Printe osv. osv. osv.?
Avatar billede vejmand Juniormester
29. juni 2011 - 17:34 #1
Kopier arket til de følgende 19 ark, så du har 20 ens ark.

Hvis du har 1 i a1 i ark1 indsætter du =Ark1!A1+1 i A1 i ark2, =Ark1!A2+1 i A1 i ark3 osv i ark4,ark5........ark20
Avatar billede steelman Novice
29. juni 2011 - 22:56 #2
Jo det er selvfølgelig en mulig. Men så kan jeg lige så godt ændre tallet manuelt. Jeg troede at der kunne laves en mere automatiseret løsning...
Avatar billede Slettet bruger
30. juni 2011 - 07:51 #3
Hvis du, som foreslået af vejmand, indsætter 20 ark,og du har første ugenummer i Ark1,celle D5 (for eksempel), så prøv følgende:

Gruppér Ark2:Ark20. I celle D5 indtaster du:
=PreviousSheet(D5)+1

PreviousSheet er følgende brugerdefinerede funktion der, såvidt jeg ved, stammer fra John Walkenbach:

Function PreviousSheet(TargetCell As Range)
Dim SheetIndex As Integer

'Make sure the formula calculates even if moving sheets around
    Application.Volatile

'Get the index of sheet where the caller formula resides
    SheetIndex = Application.Caller.Parent.Index

'Let user know if the caller is on the first sheet
    If SheetIndex = 1 Then
        PreviousSheet = "No Previous Sheet"
        Exit Function
    End If

'Return the target cell value in the previous workhseet
    PreviousSheet = Sheets(SheetIndex - 1).Range(TargetCell.Address).Value

End Function

Husk at opdele grupperede ark.
Avatar billede steelman Novice
30. juni 2011 - 08:11 #4
Jeg er ikke lige helt med på hvad du mener. Skal koden indtstes i regnearket eller hvordan?
Avatar billede finb Ekspert
30. juni 2011 - 08:31 #5
Installér Excel Analysis Tool Pack, der har ugenr.

Eller:

Opret en celle med ugenr., formatet i vba er vist "ww" eller "www"

Indspil en mauel makro, hvor du insætter sidefod,
i sidefod retter du til:
sidefod=ugenummerCellen

mvh finb
Avatar billede Slettet bruger
30. juni 2011 - 08:34 #6
Koden skal indsættes i et VBA modul. For at gå til VBA-editoren, tryk på Alt+F11. Her trykker du på Insert og på Module. Indsæt den kopierede kode i det tomme modul. Gå tilbage til regnearket (Alt+F11) og indsæt formel som tidligere anført.
Avatar billede store-morten Ekspert
30. juni 2011 - 16:39 #7
Jeg prøver lige.

Test evt. i tomt ark :-)
Celle A1 = uge nr.
A1 = 0
Kør makro "VisPrintArk" Indtast "Antal uger" eks. 20
Så får du Vis udskrift frem med 1 i A1, luk denne og
du får Vis udskrift frem med 2 i A1, luk denne osv. til 20
Sub VisPrintArk()
Dim Svar As String
    Svar = InputBox("Antal uger")
x = 0
For x = 1 To Svar
        Dim Tæl As Variant
Tæl = Ark1.Range("A1") + 1
Ark1.Range("A1") = Tæl
ActiveWindow.SelectedSheets.PrintPreview
    Next x
End Sub


Celle A1 = uge nr.
A1 = 0
Kør makro "PrintArk" Indtast "Antal uger" eks. 20
Og der sendes 20 ark til printer med 1 til 20 i A1
Sub PrintArk()
Dim Svar As String
    Svar = InputBox("Antal uger")
x = 0
For x = 1 To Svar
        Dim Tæl As Variant
Tæl = Ark1.Range("A1") + 1
Ark1.Range("A1") = Tæl
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    Next x
End Sub


Tilret A1 til din celle med uge nr.
Avatar billede store-morten Ekspert
30. juni 2011 - 18:57 #8
Udvidet kode.
Vælg ("Antal uger")
Vælg ("Start med uge nr:")
Stopper makro ved manglende input.
Send til standard printer.

Som dkhanknu beskriver, skal koden indsættes i et VBA modul. For at gå til VBA-editoren, tryk på Alt+F11. Her trykker du på Insert og på Module. Indsæt den kopierede kode i det tomme modul.

Sub PrintArk()
Dim Svar1 As String
Dim Svar2 As String
Dim Tæl As Variant
    Svar1 = InputBox("Antal uger:")
    If Svar1 = "" Then Exit Sub
    Svar2 = InputBox("Start med uge nr:")
    If Svar2 = "" Then Exit Sub
Range("A1") = Svar2 - 1
    x = 0
For x = 1 To Svar1
    Tæl = Range("A1") + 1
    Range("A1") = Tæl
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    Next x
End Sub

Kør makro "PrintArk"
Indtast "Antal uger:" eks. 20
Indtast "Start med uge nr:" eks. 5
Og der sendes 20 ark til printer med 5 til 25 i A1
Avatar billede steelman Novice
07. juli 2011 - 08:39 #9
PUHA!! Jeg troede bare at det var helt simpelt at gøre det. Jeg synes store-morten's udgave er den mest anvendelige. Vil du smide et svar?
Avatar billede store-morten Ekspert
07. juli 2011 - 10:01 #10
Har du lagt koden ind og tilpasset A1 til din "Uge nr." celle?
Ellers send en e-mail med dit skema.
Avatar billede steelman Novice
09. juli 2011 - 20:27 #11
Jep - det spiller bare. Tak
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