IMPRIMIR DOCUMENTO DO WORD ATRAVES DO VB

ALVAROVB2009 23/02/2012 16:53:42
#395416
Galera tenho uma dúvida, eu não quero que o word de o seguinte alerta:
As margens da seção 1 estão definidas fora da área de impressão. Deseja continuar?

Eu qro que simplismente ele imprima o documento e saia, excluindo o arquivo logo em seguida.
Meu comando esta assim:
Dim ObjWord As New Word.Application
ObjWord.Visible = False [ô]torna o word invisivel
[ô] nome do documento pré montado
ObjWord.Documents.Open [Ô]D:\PROJETOS\VB\SIND2\Sistema2\Carta de Cobrança\CARTA DE COBRANÇA DE GUIAS.doc[Ô]

[ô] chama rotina para substituicao
Call Substitui_Var([Ô]@Data[Ô], Text1.Text, ObjWord)
Call Substitui_Var([Ô]@Empresa[Ô], Text2.Text, ObjWord)
Call Substitui_Var([Ô]@Demonstrativo[Ô], Text3.Text, ObjWord)

[ô] Salva o documento com um novo nome
ObjWord.ActiveDocument.SaveAs (App.Path + [Ô]\NovoContrato.doc[Ô])
ObjWord.DisplayAlerts = wdAlertsNone -> Na tentativa de não exibir o alerta
ObjWord.PrintOut
ObjWord.Documents.Close

[ô] libera memoria
Set ObjWord = Nothing
Kill App.Path + [Ô]\NovoContrato.doc[Ô]

Só que não tem jeito, ele sempre esta exibindo o alerta, e como disse eu não qro que isso apareça, pois qdo eu colocar em um loop, será impresso 1 documento para cada empresa e não pode aparecer isso.

Desde já agradeço a todos
ALVAROVB2009 23/02/2012 18:17:28
#395427
Alguém ...
MARCELO.TREZE 24/02/2012 07:57:58
#395452
Resposta escolhida
Alvaro não consegui simular o erro, porém me veio algo a cabeça e se vc definir a pagina de maneira que o erro não aconteça, pois este erro se dá quando a pagina no documento word é uma e a definida na impressora é outra.

tente colocar o seguinte

no local de displayalerts


Dim ObjWord  As New Word.Application
ObjWord.Visible = False [ô]torna o word invisivel
[ô] nome do documento pré montado
ObjWord.Documents.Open [Ô]C:\Users\Marcelo\Documents\comunicado.docx[Ô]

[ô] chama rotina para substituicao
Call Substitui_Var([Ô]@Data[Ô], Text1.Text, ObjWord)
Call Substitui_Var([Ô]@Empresa[Ô], Text2.Text, ObjWord)
Call Substitui_Var([Ô]@Demonstrativo[Ô], Text3.Text, ObjWord)

[ô] Salva o documento com um novo nome
ObjWord.ActiveDocument.SaveAs ([Ô]c:\NovoContrato.docx[Ô])
[ô]ObjWord.DisplayAlerts = wdAlertsNone
Printer.PaperSize = vbPRPSA4
ObjWord.PrintOut
ObjWord.ActiveDocument.Close

[ô] libera memoria
Set ObjWord = Nothing
Kill [Ô]c:\NovoContrato.docx[Ô]



Veja se a alteração acima da o efeito desejado
ALVAROVB2009 24/02/2012 08:41:15
#395461
Marcelo obrigado pelo retorno

Na realidade não tentei nenhuma das alternativas que você colocou, pois as opções que apareceram no comando ObjWord.DisplayAlerts = foram:
wdAlertsAll
wdAlertsMessageBox
wdAlertsNone

Somente essas três, então usei a última como comentei no comando, más não deu certo.
Vou tentar o que vc sujeriu agora
ALVAROVB2009 24/02/2012 08:45:07
#395463
Citação:

:
Alvaro vc tentou

 ObjWord.DisplayAlerts = False


ou apenas

ObjWord.DisplayAlerts = 0



Acabei de testar as duas opções e nenhuma deu certo
MARCELO.TREZE 24/02/2012 08:55:26
#395469
alterei meu post acima, verifique como ficou, na realidade fiz alguns teste aqui e cheguei a aquela conclusão
ALVAROVB2009 24/02/2012 09:02:11
#395470
Marcelo infelizmente não deu certo, estou anexando o doc para vc testar
ALVAROVB2009 24/02/2012 10:13:18
#395480
Adilson vlw pelo retorno, más o problema não é para imprimir, é para não deixar aparecer o alerta ao imprimir

Más vlw pela ajuda
MARCELO.TREZE 24/02/2012 10:28:22
#395485
colega infelismente acredito que o problema esteja no seu documento, no meu caso possuo o office 2010 instalado com documentos meus o erro não ocorre, porém qunto uso seu documento, me gera um erro, e tenho de reparar o documento, tente colocar o mesmo dcumento em ouitra folha ja formatado tamnho de forma que não gere este erro e teste.

PS: pense nesta possibilidade de haver incopatibilidade entre versões do office
Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas