Avatar billede musmus Nybegynder
07. oktober 2010 - 10:08 Der er 35 kommentarer og
1 løsning

Oprette macro til udprint fra bestemt bakke i word

Hejsa,

Vi har fået nyt Officeprogram, og dermed skal jeg have lavet en normal.dot standard, som indeholder en Knap for udprint til en bestemt bakke på printeren.

Vi havde funktionen i den gamle version af Office, men jeg kan ikke rigtig få det til at virke i den nye.
Det jeg gerne vil have, er en knap man kan trykke på, og så udskriver man dokumentet i bakke 2 på printeren.(den er standardprinter).

Kan jeg lave den igen, idet vi havde den før, må det kunne lade sig gøre :)

Vi bruger nu Office 2007.

Håber nogen kan hjælpe.

P.s. har prøvet at indspille makroen, men den virker ikke, den tager blot den alm. bakke med hvidt papir.

Håber at høre fra Jer derude!

Venligst
Musmus
Avatar billede supertekst Ekspert
07. oktober 2010 - 10:27 #1
Hvordan så koden ud ved indspilling af makro?
Avatar billede musmus Nybegynder
07. oktober 2010 - 10:54 #2
Den nye kode er således, men bakkevalget vises ikke:

Sub test5()
'
' test5 Macro
'
'
    Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
        ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
        False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
End Sub
Avatar billede supertekst Ekspert
07. oktober 2010 - 11:09 #3
Prøv følgende: Ctrl+P / Egenskaber / Device Options Setting

Om der heri skulle være mulighed for at vælge bakke (Tray)
Avatar billede musmus Nybegynder
07. oktober 2010 - 11:20 #4
Jo, jeg vælger bakken jeg skal bruge når jeg laver mackroen, men den kommer ikke med i makroen.
Det er det som er problemet......
Avatar billede supertekst Ekspert
07. oktober 2010 - 11:28 #5
Ok - så prøv at gå ind i hjælp og søg på "Printout+Tray"
Avatar billede musmus Nybegynder
07. oktober 2010 - 11:35 #6
OK, prøvet men der kommer ingen resultater frem i hjælp på dette.
Avatar billede supertekst Ekspert
07. oktober 2010 - 11:44 #7
Jeg skulle nokunderstreget at det var hjælpen i VBA:

Word 2007 Developer Reference > Word Object Model Reference > Options Object > Properties
Word Developer Reference
Options.DefaultTrayID Property
Returns or sets the default tray your printer uses to print documents. Read/write WdPaperTray.
Syntax

expression.DefaultTrayID

expression  A variable that represents an Options collection.

Remarks


You can use the DefaultTray property with a string from the Default tray box on the Print tab in the Options dialog box to set this same option.


Example


This example sets Word to use the upper print tray, and then it prints the active document.

Visual Basic for Applications
Options.DefaultTrayID = wdPrinterUpperBin
ActiveDocument.PrintOut

This example returns the current setting of the Default tray option on the Print tab in the Options dialog box.

Visual Basic for Applications
Dim lngTray As Long

lngTray = Options.DefaultTrayID


© 2006 Microsoft Corporation. All rights reserved.



See Also
Options Object
Options Object Members
Avatar billede musmus Nybegynder
07. oktober 2010 - 11:52 #8
Kunne jeg lokke dig til at lave en macro, med et bakkevalg der så hedder at den skal tage bakke 2(jeg har 3 bakke, manuel, bakke2, bakke 3)

Takker :)
Avatar billede supertekst Ekspert
07. oktober 2010 - 12:01 #9
Desværre - kan ikke teste da jeg kun en bakke ( - men måske kommer der en forbi med mulighed for også at teste)
Avatar billede musmus Nybegynder
07. oktober 2010 - 12:04 #10
Kan selv teste hvis du kan lave koden for mig :)

Kunne jeg lokke dig til det?
Avatar billede supertekst Ekspert
07. oktober 2010 - 13:39 #11
Sub udskriv()
'    Options.DefaultTrayID = wdPrinterUpperBin
    Options.DefaultTrayID = wdPrinterMiddelBin
'    Options.DefaultTrayID = wdPrinterLowerBin
   
    ActiveDocument.PrintOut
End Sub

Prøv dig selv frem ved at skifte mellem de forskellige bakker.
Avatar billede musmus Nybegynder
07. oktober 2010 - 14:05 #12
Hejsa,

har nu prøvet alle 3 indstillinger.
wdPrinterUpperBin kan den godt tolke som bakke 1, og der tager den bakke 1
Ved brug af wdPrinterMiddelBin, tager den bakke 3
Ved brug af wdPrinterLowerBin, tager den bakke 3.
Som om at jeg slet ikke kan bruge bakke 2 overhovedet.

Har prøvet at vælge bakke 2 ved udprint, der tager den også bakke 3...


Måske en helt anden indstilling der mangler?


Jeg har en HP 4050 stående.

Så for så vidt tror jeg at hvis bare den ville tage bakke 2, så virker det?

Kan du hjælpe?
Avatar billede supertekst Ekspert
07. oktober 2010 - 14:16 #13
Umiddelbart ikke - prøv at søge her på E. under Programmer / Tekstbehandling / Word / Tray - der er nogle sp. vedr. dette.
Avatar billede musmus Nybegynder
07. oktober 2010 - 14:23 #14
OK, jeg har en anden stående ligeså, som godt kan printe på bakke 2(ligeså brevpapir),
Den er ikke standardprinter, så er makroen end lidt anden ikke?
Avatar billede supertekst Ekspert
07. oktober 2010 - 14:39 #15
Jo - så skal printer vælges.

Eks.:

ActivePrinter = "KONICA MINOLTA PagePro 1350W (kopi 2)"

indsættes inden selve udskrivningen
Avatar billede musmus Nybegynder
07. oktober 2010 - 14:48 #16
Hejsa,OK, har indsat den inden printout.
men den melder fejl, og vil debugge linien, jeg har indsat.
jeg har indsat printernavnet.

Hvad gør jeg forkert?
Avatar billede supertekst Ekspert
07. oktober 2010 - 15:30 #17
Hvordan ser din kode ud?
Avatar billede musmus Nybegynder
07. oktober 2010 - 15:40 #18
her er koden:

Sub bakke2()
'  Options.DefaultTrayID = wdPrinterUpperBin
    Options.DefaultTrayID = wdPrinterMiddelBin
'    Options.DefaultTrayID = wdPrinterLowerBin
  ActivePrinter = "HP LaserJet 4050 Series PCL 6"
    ActiveDocument.PrintOut
End Sub

Den brokker sig over linien ActivePrinter = "HP LaserJet 4050 Series PCL 6"
Avatar billede supertekst Ekspert
07. oktober 2010 - 16:21 #19
Der må være en stavefejl - blot et tegn forkert giver fejlen - har prøvet med min egen.
Avatar billede musmus Nybegynder
07. oktober 2010 - 16:49 #20
har kopieret din kode, samt navnet på printeren direkte, uden at taste noget.

Mærkeligt :)
Avatar billede supertekst Ekspert
07. oktober 2010 - 16:55 #21
Prøv evt. at vælge en anden printer og se om det samme sker.
Avatar billede musmus Nybegynder
07. oktober 2010 - 22:08 #22
Jeg har desværre ikke flere at teste på.....

Andre ideer...? For umiddelbart burde din kode virke....
Avatar billede supertekst Ekspert
07. oktober 2010 - 22:48 #23
Beklager - pt har jeg ikke flere forslag.
Avatar billede musmus Nybegynder
20. oktober 2010 - 09:09 #24
Hej, så har jeg fået macroen til at virke med bakke 2 :)
Det var fordi printeren der skal udskrives til ligger på en server, så derfor skulle den peges på denne placering i navnet ligeså.

Men så har jeg et andet problem med den.
Den vælger nu den valgte angivne printer og printer fra den bakke jeg skal bruge.
Men bagefter laver den den angivne printer om til default, selvom jeg har en anden er der default printer.

Jeg ønsker IKKE at den skal lave min default printer om.
Hvordan forhindrer jeg dette i makroen?
Jeg syntes at huske at det kan gøre i makroen, kan blot ikke lige huske kommandoen :)

Kan du hjælpe?
Avatar billede supertekst Ekspert
20. oktober 2010 - 09:18 #25
Vender tilbage
Avatar billede musmus Nybegynder
20. oktober 2010 - 09:23 #26
OK, fint, jeg mener den skal indsættes = sCurrentPrinter = Application.ActivePrinter

og til sidst Application.ActivePrinter = sCurrentPrinter


er det ikke korrekt?

Hvis jeg så gemmer normal.dot, og jeg lægger den på fælles drevet, vil den så blive åbnet hos de andre brugere der ska bruge makroen?
Og kan jeg samtidig lave en knap som automatisk kommer frem hos brugeren?
Avatar billede supertekst Ekspert
20. oktober 2010 - 11:30 #27
Har prøvet at ændre standardprinter via Windows og via VBA til anden printer.

VBA: ActivePrinter = "KONICA MINOLTA PagePro 1350W"

resætter standardprinter..
Avatar billede musmus Nybegynder
20. oktober 2010 - 12:38 #28
Yep, det virker.
Hvad med:
Hvis jeg så gemmer normal.dot, og jeg lægger den på fælles drevet, vil den så blive åbnet hos de andre brugere der ska bruge makroen?
Og kan jeg samtidig lave en knap som automatisk kommer frem hos brugeren?
Kan du hjælpe med denne også :)
Avatar billede supertekst Ekspert
20. oktober 2010 - 13:04 #29
Har ikke mere tid lige nu!
Avatar billede musmus Nybegynder
20. oktober 2010 - 13:19 #30
nej ok. Du må gerne vende tilbage, hvis du har en løsning, når du får tid igen?
Tak for det du har givet mig indtil videre.
Avatar billede Lene Fredborg Ekspert
20. oktober 2010 - 16:18 #31
Vedr. Normal.dot (Normal.dotm i 2007):

Normal.dot(m) kan IKKE deles af flere brugere. Hver bruger skal have sin egen Normal.dot(m). Jeg har skrevet om det i artiklen "Håndtering af skabelonen Normal.dot / Normal.dotm i virksomheder":
http://wordblog.thedoctools.com/#post61

Når flere brugere har behov for samme makroer, er det bedre at gemme dem i en separat skabelon (template), der installeres som tilføjelsesprogram (add-in) hos brugerne. Skabelonen skal blot placeres i den mappe, der i Word er defineret som Start-mappen under Filplaceringer (i engelsk version hedder mappen Startup). Så vil makroer og værktøjer deri automatisk blive indlæst og stillet til rådighed, når Word startes.

Den letteste løsning er, at du i en sådan add-in laver en knap i værktøjslinjen Hurtig adgang (Quick Access Toolbar / QAT), som kalder den ønskede makro. Så vil knappen være til rådighed for brugerne.

En engelsk artikel om at distribuere makroer:
http://www.word.mvps.org/FAQs/MacrosVBA/DistributeMacros.htm
Avatar billede musmus Nybegynder
21. oktober 2010 - 08:35 #32
Hejsa,
sjovt for vi har brugt den i 10 år uden problemer i det tidligere word..... :)

Nå, men jeg prøver det i artiklen og vender tilbage hvis problemer.
Avatar billede musmus Nybegynder
21. oktober 2010 - 09:22 #33
Jeg kan få macroerne til at virke min egen maskine, men hvis jeg lægger en skabelon i startupmappen på de andre brugere, fungerer det ikke.
Der er ingen makroer installeret i den template, siger den.
Så jeg kan ikke lave knappen til dem :)

I Brugerskabelonerne(ligger delt på server) ligger der en Normal.dotm.....den dannes automatisk, hvis der ikke ligge nogen i forvejen....
Og da alle bruger denne brugerskabelonsmappe, så bliver den måske hentet hver gang eller har hver deres bruger en normal.dotm ?

Jeg kan ihvertfald ikke få det til at virke.

Har du nogen forslag eller råd?
Avatar billede Lene Fredborg Ekspert
21. oktober 2010 - 10:48 #34
Hvis der skal deles skabeloner mellem brugere, så definer mappen til arbejdsgruppe-skabeloner som en fælles mappe på en server og placer de fælles skabeloner deri. Lad mappen til brugerskabeloner  - og dermed Normal.dotm - være brugerens personlige, sådan som Word er designet til at virke. Når I har fælles brugergruppeskabelonmappe har alle brugere en fælles Normal.dotm.

Hvis du skal bruge add-in-løsningen, skal makroerne være i add-in'en og ikke i Normal.dotm. Noget tyder på, at du ikke har gemt makroerne i add-in'en. Makrosikkerhed: Sørg for at tilføje Startup-mappen som en placering, der er tillid til.
Avatar billede musmus Nybegynder
09. november 2012 - 15:03 #35
Hej lene-fredborg. Kast et svar så får du point.
Avatar billede Lene Fredborg Ekspert
09. november 2012 - 17:16 #36
Kommer her.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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