ciao gente!,
ieri avevo scritto di aver risolto il problema. Non è completamente vero
!!!!!!!
riesco, partendo da Excel, ad aprire un documento Word e lanciare una macro
memorizzata.
Non sempre però tutto fila liscio.
In particolare il problema della stampa unione zoppica.
se lancio la macro direttamente in ambiente Word tutto è OK.
se lancio la macro partendo da una macro Excel mi da un errore:
Errore di run-time 5852: l'oggetto richiesto non è disponibile.
riferito a
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
non si riesce a salvare il risultato in un documento ( anche sostituendo
wdSendToPrint..... ) l'errore è il medesimo.
c'è qualche comunicazione tra Excel e Word non corretta.
Se la macro è "più semplice" tutto sembra funzionare.
Questa è la macro EXCEL che utilizzo
Sub prepara_etichette()
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Call indirizzamento
Set WordApp = CreateObject("Word.Application")
Set WordDoc = WordApp.Documents.Open _
(indirizzo & "\printlabel.doc")
WordApp.Visible = True
WordApp.Run "label"
WordApp.Quit SaveChanges:=wdDoNotSaveChanges
Set WordApp = Nothing
End Sub
questa è la macro WORD (che si pianta)
Dim indirizzo As String
Sub label()
'
' label Macro
' Macro registrata il 02/07/2007 da gil
'
'ChangeFileOpenDirectory indirizzo
Call indirizzamento
ChangeFileOpenDirectory indirizzo
Documents.Open FileName:="modello_eti.doc", ConfirmConversions:=False, _
ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=wdOpenFormatAuto,
XMLTransform:=""
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With
ActiveDocument.SaveAs FileName:="etichette.doc", FileFormat:= _
wdFormatDocument, LockComments:=False, Password:="",
AddToRecentFiles:= _
True, WritePassword:="", ReadOnlyRecommended:=False,
EmbedTrueTypeFonts:= _
False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False
ActiveDocument.Close savechanges:=True
ActiveDocument.Close savechanges:=False
End Sub
Post by Norman JonesCiao Gil,
E partito un colpo! La mia risposta era
'------------------
ho bisogno di stampare delle etichette prendendo i dati da un file Excel.
La soluzione è normamente utilizzare la stampa unione, che non mi crea
grattacapi. Il problema è che questa stampa dovrei lanciarla tramite una
macro in VBA.
qualcuno ha già provato ?
'------------------
Prova ad attivare il registratore e effetua i
passi manualmente. Il codice risultante potrebbe
essere modificata per rendelo di piu' ampio
applicazione.
Se dovessi incontrare dei problemi con tale
modifica, posta il codice in una risposta e indica
i problemi incontrati
---
Regards,
Norman
Microsoft Excel MVP