Avatar billede Slettet bruger
13. november 2003 - 14:24 Der er 14 kommentarer og
1 løsning

Makro i Word

Hej

Jeg har lavet en makro i word der:

-Åbner et dokument
-Fletter med en kommaseperet fil
-Printer
-Afslutter Word

Problemet er så at Word kommer med en dialogboks med noget i retning af: Word er ikke færdig med at printe, vil du afslutte alligevel?

Mit spørgsmål er så:
Hvordan får jeg min makro til at vente med at afslutte Word, til Word er færdig med at skrive ud?
13. november 2003 - 14:29 #1
Hvis du ændrer brevfletning til at flette direkte til printeren i stedet for at flette til et nyt dokument, skulle du slippe for dette problem.

I forbindelse med brevfletningen kommer der en dialogboks frem, når du klikker på knappen Flet i Flethjælperen. Det er i denne dialogboks, du kan vælge hvor skal resultatet af brevfletningen skal placeres.
Avatar billede rvm Nybegynder
13. november 2003 - 14:37 #2
Prøv lige at indsætte koden, så arbejder jeg videre med den, så det kan lykkes.
Avatar billede Slettet bruger
13. november 2003 - 14:43 #3
Jeg prøver lige Eriks forslag.
13. november 2003 - 14:45 #4
Hvis du vælger Funktioner->Makro->Makroer...
Marker din makro, og klikker på knappen Rediger, kommer koden frem på skærmen.
Ret linien:
  .Destination = wdSendToNewDocument
til:
  .Destination = wdSendToPrinter
Avatar billede rvm Nybegynder
13. november 2003 - 14:52 #5
Men problemet er jo at du prøver at lukke Word, før printjobbet er færdigt - det var derfor lige ville se din kode (altså hvilken metode du bruger til at printe og lukke Word)
Avatar billede Slettet bruger
13. november 2003 - 16:50 #6
Jeg bruger Application.Quit
Avatar billede rvm Nybegynder
13. november 2003 - 22:14 #7
Jeg tror det er din printkommando, der skal modificeres, så den ikke skriver ud i baggrunden:

Application.PrintOut Background:=False
15. november 2003 - 17:36 #8
må vi se din kode - det gøre det måske lidt nemmere at hjælpe dig
17. november 2003 - 00:14 #9
Noget nyt?????
Avatar billede Slettet bruger
18. november 2003 - 13:15 #10
Hej

Jeg har prøvet både .Destination = wdSendToPrinter og Application.PrintOut Background:=False og i begge tilfælde kommer printer dialogboksen frem.


Sub BKS_AX_BREV_1()

    Documents.Open FileName:="D:\BKS\BREVE\STD-BREVE\BKS_AX_BREV_1.doc", _
        ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _
        PasswordDocument:="", PasswordTemplate:="", Revert:=False, _
        WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _
        wdOpenFormatAuto
    With ActiveDocument.MailMerge
        .Destination = wdSendToPrinter 'wdSendToNewDocument
        .MailAsAttachment = False
        .MailAddressFieldName = ""
        .MailSubject = ""
        .SuppressBlankLines = True
        With .DataSource
            .FirstRecord = wdDefaultFirstRecord
            .LastRecord = wdDefaultLastRecord
    End With
        .Execute Pause:=True
    End With
    ActiveDocument.PrintOut
    ActiveDocument.ActiveWindow.Close SaveChanges:=wdNoSaveChanges
    'ActiveDocument.ActiveWindow.Close SaveChanges:=wdNoSaveChanges
    Application.Quit
    Close
End Sub
Avatar billede rvm Nybegynder
18. november 2003 - 13:31 #11
Denne kode fungerer uden problemer og uden dialogboks

Sub brevflet()
Documents.Open FileName:="""Test flettebrev.doc""", ConfirmConversions:= _
        False, ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
        PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
        WritePasswordTemplate:="", Format:=wdOpenFormatAuto
   
    ActiveDocument.MailMerge.OpenDataSource Name:= _
        "C:\Documents and Settings\rima2-pc1\Skrivebord\TEST liste til flettebrev.xls" _
        , ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
        AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
        WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
        Format:=wdOpenFormatAuto, Connection:= _
        "Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=C:\Documents and Settings\rima2-pc1\Skrivebord\Erhvervs og Boligstyrelsen\TEST liste til flettebrev.xls;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet" _
        , SQLStatement:="SELECT * FROM `Ark1$`", SQLStatement1:="", SubType:= _
        wdMergeSubTypeAccess
   
    With ActiveDocument.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
        With .DataSource
            .FirstRecord = wdDefaultFirstRecord
            .LastRecord = wdDefaultLastRecord
        End With
        .Execute Pause:=False
    End With
   
    ActiveDocument.PrintOut False
    Application.Quit
End sub

Så det er nok noget med din "Close" til sidst.
Avatar billede rvm Nybegynder
18. november 2003 - 13:41 #12
Jeg har bare optaget den (derfor ser det lidt rodet ud *S*), menjeg har lige opdaget endnu en forskel:

Du har ".Execute Pause:=True"
Jeg har ".Execute Pause:=False"

Og så har jeg  selvfølgelig datakilden med, men det skulle ikke betyde noget.
Avatar billede Slettet bruger
18. november 2003 - 13:49 #13
Ok, tester lige
Avatar billede rvm Nybegynder
23. november 2003 - 22:37 #14
Hvordan gik testen?
Avatar billede Slettet bruger
26. november 2003 - 09:09 #15
Jeg har lige haft 1 uges ferie, derfor den lange svar tid.  Tak for hjælpen.
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