Avatar billede para7 Nybegynder
21. november 2011 - 11:44 Der er 10 kommentarer og
2 løsninger

Oprette en makro

For at slippe af med margen advarsel dialog box ved printning, ser det ud til (http://www.eksperten.dk/spm/951691) at løsningen er at installere en makro og fylde denne kodestump ind. Nogen der ved hvordan. Har prøvet at indsætte i Normal.dot som tekst, men det virker ikke:

Sub Print_ShowNoMarginsWarning_ShowPrintDialog()
    Dim bPrintBackgroud As Boolean

    'Save current setting of background printing
    bPrintBackgroud = Options.PrintBackground
    Options.PrintBackground = False

    'Turn off DisplayAlerts
    Application.DisplayAlerts = wdAlertsNone

    Dialogs(wdDialogFilePrint).Show

    'Turn on DisplayAlerts again
    Application.DisplayAlerts = wdAlertsAll

    'Set original background printing setting
    Options.PrintBackground = bPrintBackgroud
End Sub
Avatar billede perhol Seniormester
21. november 2011 - 12:02 #1
Der burde befinde sig en normal.dot i denne mappe
C:\Users\Dit Brugernavn\AppData\Roaming\Microsoft\Skabeloner

Muligvis hedder slutmappen Templates.

Det er jo ikke sikkert at du vil have den nødvendige makro til rådighed i alle dokumenter, i så fald skal den bare sættes ind i det dokument der har problemet.

I det link vejmand gav dig i #1 er der 2 makroer, den første vil undertrykke advarslen og printe ud uden at du ser den normale Print-dialog.

Den anden vil undertrykke advarslen men stadig vise print-dialogen.
Det vil sige at du stadig har mulighed for at indstille hvilken printer du vil bruge, hvilke sider du vil printe, antal kopier osv.

Du åbner dit dokument og trykker på Alt+F11 og dobbeltklikker på "ThisDocument" så der vises en blank makro-side, kopierer den foretrukne makro fra linket og sætter den ind i makro-siden.

Herefter kan du kalde makroen hver gang du vil printe i stedet for den måde du normalt åbner print-dialogen på.
Avatar billede para7 Nybegynder
21. november 2011 - 12:11 #2
OK, fortsætter her.

Det ser jo rigtigt ud. Normal.dot indeholder i forvejen en del makros, som er installeret af noget software.
Men selvom jeg sætter koden ind enten i top eller bund af filen og gemmer og lukker, sker der intet. Margin dialogen kommer stadig.
skriv lige svar for point i mit nye spm: http://www.eksperten.dk/ (...)

Sub Print_ShowNoMarginsWarning_ShowPrintDialog()
    Dim bPrintBackgroud As Boolean

    'Save current setting of background printing
    bPrintBackgroud = Options.PrintBackground
    Options.PrintBackground = False

    'Turn off DisplayAlerts
    Application.DisplayAlerts = wdAlertsNone

    Dialogs(wdDialogFilePrint).Show

    'Turn on DisplayAlerts again
    Application.DisplayAlerts = wdAlertsAll

    'Set original background printing setting
    Options.PrintBackground = bPrintBackgroud
End Sub
Avatar billede tjp Mester
21. november 2011 - 12:15 #3
Du skal køre makroen for at printe uden advarsel..

Tryk Alt+F8 og vælg makroen 'Print_ShowNoMarginsWarning_ShowPrintDialog' og tryk Afspil.
Avatar billede Lene Fredborg Ekspert
21. november 2011 - 12:23 #4
Det er mig, der har lavet makroerne og stillet dem til rådighed fra min hjemmeside. Bemærk, at jeg på siden har skrevet:

"Two different macro versions are included below. Both macro versions suppress the margins warning. If you add one of the macros to your Normal.dot / Normal.dotm template, you can use that macro for printing your special documents. You could assign a keyboard shortcut to the macro or assign the macro to a toolbar button in order to make it easy to print your documents."

Makroerne kører _ikke_ i stedet for den almindelige Print-funktion. Når du skal printe, skal du vælge at køre den makro, du har gemt, ikke bare vælge Udskriv (Ctrl+P). Mon ikke det er der, dit problem er?

Det er muligt at få makroer til at køre i stedet for indbyggede funktioner, men det er ikke nødvendigvis klogt i dette tilfælde.
Avatar billede perhol Seniormester
21. november 2011 - 12:26 #5
Som tjp skriver!
Det skal du så gøre i stedet for den måde du normalt kalder udskriften på.
Avatar billede para7 Nybegynder
21. november 2011 - 12:39 #6
OK, men kan ikke se formålet med at skulle køre en makro hver gang jeg skal til at printe. Jeg ønsker bare generelt at slå den tossede box fra, den gør aldrig noget nytte. Jeg har placeret den i Normal.dot og så troede jeg den blev afviklet hver gang jeg printer.
Avatar billede Lene Fredborg Ekspert
21. november 2011 - 13:46 #7
Du efterlyste en metode til at hindre dialogboksen om margener i at komme frem. En sådan metode har du fået anvist.

Du kan ændre makroens navn til "FilePrint" i stedet for "Print_ShowNoMarginsWarning_ShowPrintDialog". Så vil den køre i stedet for den indbyggede print-kommando. MEN dette virker ikke, hvis du har Word 2010, fordi Print er lavet om deri (og du har ikke skrevet, hvilken version du bruger).
Avatar billede para7 Nybegynder
21. november 2011 - 16:07 #8
Tak, et skridt nærmere. Nu kan jeg undgå dialogen ved print fra direkte åbne Word filer. Word versionen er 2003 (skrev det i det tidl. spm).
Jeg har placeret subben øverst i Normal.dot.
MEN sagen are at jeg har noget software der kalder Word og Normal.dot, hvor der er makroer for de filer der skal printes ud til en pdf printer. Den jeg bruger er her, og i den har jeg forsøgt at placere dialog-killeren. Men det bliver overhørt, dialogen kommer stadig:

Sub Aura14e()
Dim Aura14e As String
'opens a prompt to enter a document name which is passed into the Documents.open command
'
'
    ChangeFileOpenDirectory "C:\PROGRAM FILES\AVS5\"
    'Open the designated file.
    Documents.Open FileName:="AURA10e.doc", ConfirmConversions:=False, ReadOnly _
        :=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate _
        :="", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="" _
        , Format:=wdOpenFormatAuto
        ActiveDocument.Fields.Update
      'Run this macro to update the fields
        updateFieldsTextBoxes
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="1", PageType:= _
        wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:= _
        False, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0, _
        PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0
    'Turn off DisplayAlerts
    Application.DisplayAlerts = wdAlertsNone
    ActiveDocument.Saved = True
    ActiveWindow.Close
    Application.Quit
End Sub
Avatar billede Lene Fredborg Ekspert
21. november 2011 - 16:20 #9
Det er underordnet, hvor i Normal.dot, makroen findes. Det er navnet på makroen, der får den til at køre i stedet for den indbyggede Print.

Jeg har ikke tid til at prøve din kode, men du har placeret "Application.DisplayAlerts = wdAlertsNone" EFTER af du laver noget med print, så det har ingen effekt. Flyt linjen op over Application.PrintOut-linjen og se, om det løser det. Og så har du udeladt en vigtig del inden du slutter makoen:
Application.DisplayAlerts = wdAlertsAll
jf. forklaringen på min hjemmside.
Avatar billede para7 Nybegynder
21. november 2011 - 17:01 #10
HURRA for det Lene, send lige svar for pointdeling.
Jeg har så placeret
Application.DisplayAlerts = wdAlertsAll
til allerslut i den makro...
Avatar billede Lene Fredborg Ekspert
21. november 2011 - 17:12 #11
Godt at det lykkedes.
Hvis det nu skal være rigtig pænt i sådan en makro, så bør du have fejlhåndtering, som sørger for, at du også får ryddet pænt op, selv om noget skulle gå galt. Men hvis det kun er dig selv, der skal bruge makroen, så går det jo nok ;-)
Avatar billede para7 Nybegynder
21. november 2011 - 17:33 #12
Ja, det er udmærket, nu kan jeg begynde at arbejde med makroer selv :)
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
Tag et kursus i Word og øg effektiviteten

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