IMPRIMIR DOCUMENTO DO WORD ATRAVES DO VB
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
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
Alguém ...
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
Veja se a alteração acima da o efeito desejado
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
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
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
Citação::
Alvaro vc tentouObjWord.DisplayAlerts = False
ou apenasObjWord.DisplayAlerts = 0
Acabei de testar as duas opções e nenhuma deu certo
alterei meu post acima, verifique como ficou, na realidade fiz alguns teste aqui e cheguei a aquela conclusão
Marcelo infelizmente não deu certo, estou anexando o doc para vc testar
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
Más vlw pela ajuda
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
PS: pense nesta possibilidade de haver incopatibilidade entre versões do office
Tópico encerrado , respostas não são mais permitidas