Stampa unione excel



  • Stampa unione excel
    di Lomba (utente non iscritto) data: 20/02/2013 12:10:34

    Ciao a tutti, ho un problema che non riesco risolvere da giorni e sinceramente su internet nn rieco a trovare una soluzione,
    ho lanciato da excel una stampa unione in word richiamando una Macro fatta in word, ma dopo aver aperto il file word entra nella macro e mi si blocca all'istruzione:
    .Destination = wdSendToPrinter
    con errore :Errore run-time '5852' L'oggetto richeisto non è disponibile.

    sto cercando si stampare in PDF, penso di aver attivato in VBA i Riferimenti (library) di Word e pdf corretti, al limite se qualcuno può ripetermeli è meglio., vi allego anche il codice vba di excel:

    Sub Stampa_lettere()
    Dim Doc_Word As Word.Application
    Dim myDoc As Word.Document
    Dim sStr, sSeparator As String
    Const sPath As String = "C:TuttoDocumenti definitivi"
    Const sName As String = "lettera invito v2.docx"
    Const myMacro As String = "Macro1"
    sSeparator = Application.PathSeparator
    If Right(sPath, 1) <> sSeparator Then
    sStr = sPath & sSeparator & sName
    Else
    sStr = sPath & sName
    End If
    Set Doc_Word = CreateObject("Word.Application")
    On Error GoTo XIT
    With Doc_Word.Application
    .DisplayAlerts = False
    .Visible = True
    .Activate
    Set myDoc = .Documents.Open(sStr)
    .Run "'" & sStr & "'!" & myMacro
    .Quit
    XIT:
    End With
    Application.DisplayAlerts = True
    Set myDoc = Nothing
    Set Doc_Word = Nothing
    End Sub

    potete aiutarmi?
    grazie
     
    Sub Macro1()
        ChangeFileOpenDirectory "C:TuttoDocumenti definitivi"
        Documents.Open FileName:="lettera invito v2.docx", _
            ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _
            PasswordDocument:="", PasswordTemplate:="", Revert:=False, _
            WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _
            wdOpenFormatAuto, XMLTransform:=""
        ActivePrinter = "Adobe PDF"
        With ActiveDocument.MailMerge
            .Destination = wdSendToPrinter  ' qs istruzione da il problema
            .SuppressBlankLines = True
            With .DataSource
                .FirstRecord = wdDefaultFirstRecord
                .LastRecord = wdDefaultLastRecord
            End With
            .Execute Pause:=False
        End With
        Application.WindowState = wdWindowStateNormal
    
    End Sub
    



  • di HarryBosch data: 25/02/2013 01:59:10

    Ciao Lomba
    non ho avuto modo di analizzare attentamente il tuo codice.
    Però mi soffermo subito sull'errore che ricevi, ovvero quando mandi il file in stampa Pdf tramite Adobe: hai provato a creare il pdf direttamente con lo strumento di Word? Dalla versione Office 2007 puoi salvare direttamente in questo formato con tutte le applicazioni.

    Una cosa del tipo:
    ActiveDocument.ExportAsFixedFormat OutputFileName:= "C:UsersDesktopDocumento1.pdf", _ ExportFormat:=wdExportFormatPDF, OpenAfterExport:=True, Range:=wdExportAllDocument, From:=1, To:=1

    ecc... il registratore di macro può fornirti tutti gli argomenti necessari