Avatar billede bjarkebundgaard Nybegynder
26. oktober 2003 - 10:32 Der er 11 kommentarer og
1 løsning

Optælling i felt når der printes.

Jeg har et regneark som bruges som ordreseddel. I et felt I1, står der et ordrenummer. Jeg vil gerne have dette nummer til at tælle op, hver gang der printes en side ud. Altså hver gang regnearket bliver printet ud. Det skal dog fungere således, at vælger man at printe f.eks 100 ud, så skal der tælles 1 op på ordrenummeret på hvert print.

Det skal ige siges at jeg absolut ikke har det sorte bælte i Excel, så hvis der er noget jeg har forklaret ufyldestgørende, så må I sige til, så skal jeg nok prøve at gøre det bedre ;o)

Bjarke
Avatar billede stefanfuglsang Juniormester
26. oktober 2003 - 12:22 #1
I arket: tryk Alt+F11, sp startes visual basic. Dobbeltklik på "ThisWorkbook" i venstre side.
Kopier følgende ind i det felt, der kommer frem:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Worksheets(1).Range("i1").Value = Worksheets(1).Range("i1").Value + 1
End Sub
Avatar billede stefanfuglsang Juniormester
26. oktober 2003 - 12:24 #2
sp = så ...
Dette virker for det første ark (ark 1)
hvis du har et ark der hedder f.eks. OrdreSeddel kan du i stedet bruge:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Worksheets("OrdreSeddel").Range("i1").Value = Worksheets("OrdreSeddel").Range("i1").Value + 1
End Sub
Avatar billede x-lars Novice
26. oktober 2003 - 12:26 #3
>>>stefanfuglsang, enig i din løsning, men tror du ikke gerne, at han vil have, at den også gemmer værdien??
Avatar billede stefanfuglsang Juniormester
26. oktober 2003 - 12:29 #4
Ikke forstået, I1 bliver talt op, og denne gemmes sammen med arket?
Avatar billede bjarkebundgaard Nybegynder
26. oktober 2003 - 12:40 #5
Tak for hjælpen. Der er dog et lille problem. Så længe jeg kun skriver 1 side ud af gangen, så tæller regnearket fint op. Men vælger jeg print og vælger flere antal kopier, f.eks 10, så tæller regnearket kun 1 op i feltet i1, og skriver 10 ens kopier ud.

Mvh.
Bjarke
Avatar billede stefanfuglsang Juniormester
26. oktober 2003 - 14:09 #6
Ok - det havde jeg overset. Jeg tænker lige over det, det er ikke så nemt
Avatar billede bjarkebundgaard Nybegynder
26. oktober 2003 - 14:22 #7
OK. Sig til hvis du vil have flere point for det.. ;o) Så vidt jeg kan rationalisere mig frem til, så er det noget med at lave en komandoknap. Det jeg forestiller mig er, en dialogboks der spørger hvor mange udskrifter der skal skrives ud. Dette kommer i en variabel. Så laves en løkke. Løkken forløber nogenlunde således: tæl felt i1 1 op, print 1 side ud, træk 1 fra variablen, er variablen større end 0 køres den igen. Men hvordan sådan noget laver i excel, det aner jeg ikke.....

Mvh.
Bjarke
Avatar billede bjarkebundgaard Nybegynder
26. oktober 2003 - 14:46 #8
Nu har jeg selv biflet noget sammen til en komandoknap, og det ser ud til at virke. Men jeg kan ikke få en dialog boks op, der kan sætte en variabel ned i MyPrints. Kan det lade sig gøre?? Den skal vel ind mellem deklarationen af variablen MyPrints og Do While løkken. Her er hvad jeg har bikset sammen:

Private Sub CommandButton1_Click()
MyPrints = 0
Do While MyPrints >= 0
    Worksheets(1).Range("i1").Value = Worksheets(1).Range("i1").Value + 1
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    MyPrints = MyPrints - 1
    Loop
       
   
End Sub
Avatar billede bjarkebundgaard Nybegynder
26. oktober 2003 - 15:02 #9
Så er problemet næsten løst. Utrolig hvad man kan når man bliver stædig, og ikke har noget imod at lære ;o) Løsningen blev:
Private Sub CommandButton1_Click()
MyPrints = 5
MyPrints = Application.InputBox("Vælg antal udskrifter")
Do While MyPrints > 0
    Worksheets(1).Range("i1").Value = Worksheets(1).Range("i1").Value + 1
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    MyPrints = MyPrints - 1
    Loop
       
 
End Sub

Nu vil jeg gerne have at min Command Button ikke er synlig på mine udskrifter, er dette så muligt?
Avatar billede stefanfuglsang Juniormester
26. oktober 2003 - 15:04 #10
Det er netop problemet med dialogboksen, som jeg bakser med - jeg troede at man kunne bruge Application.Dialogs(xlDialogPrint).Show.
En hurtig løsning er
MyPrints = InputBox("Antal kopier", "", 1)
Avatar billede stefanfuglsang Juniormester
26. oktober 2003 - 15:06 #11
Hov, du løste problemet inden jeg sendte.
Jeg tror du kan sætte printobject til false i Egenskaber for knappen
Avatar billede bjarkebundgaard Nybegynder
26. oktober 2003 - 15:20 #12
Tak for at sætte mig på rette spor. Du har fået pointene Fuglsang.
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