About Me
Seguidores
Estatisticas
214: VBA - Mudar de impressora, para Output, em Excel
Recebido por mail (adaptado):
"A minha duvida é a seguinte:
Tenho umas macros num documento de excel para executarem algumas funções, entre as quais a de gravar uma imagem em formato MDI.
Acontece que o ficheiro principal está num servidor assim como as pastas onde gravo essas imagens.
Tenho atalhos em varios computadores da rede para esse ficheiro.
1ª - Qual a possibilidade de puder trabalhar no mesmo ficheiro ao mesmo tempo nos tres computadores?
2ª- Após a instalação de uma impressora nova que serve dois desses computadores as macros deixaram de funcionar convenientemente, pois só num
dos computadores é permitido executar a macro correctamente. No outro computador para quando chega à parte de gravar a imagem .MDI.
As macros são as seguintes ou melhor parte delas.
________________________________________________
Sheets("M D").Select
Range("A1").Select
Application.Dialogs(xlDialogPrinterSetup).Show
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Application.ActivePrinter = "Microsoft Office Document Image Writer em
Ne01:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, _
ActivePrinter:="Microsoft Office Document Image Writer em Ne01:", _
Collate:=True, _
PrintToFile:=True, _
PrToFileName:="\\Hdl\cir\Stocks\Coz\Mapas\Mapa de " &
Format(Now, "dd-mmm-yy h-mm-ss") & ".mdi"
__________________________________________________
Sheets("Extemporanea").Select
Application.Dialogs(xlDialogPrinterSetup).Show
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Application.ActivePrinter = "Microsoft Office Document Image Writer em
Ne01:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, _
ActivePrinter:="Microsoft Office Document Image Writer em Ne01:", _
Collate:=True, _
PrintToFile:=True, _
PrToFileName:="\\Hdl\cir\Stocks\Coz\Extemporaneas\Extemporânea
Quando a macro chega a [[Application.ActivePrinter = "Microsoft Office Document Image Writer em Ne01:"]] pára, mas só num computador, se alterar para
[[Application.ActivePrinter = "Microsoft Office Document Image Writer em Ne00:"]], fica a funcionar nesse computador e dá erro no outro.
Serão as portas da impressora?? Como faço para remediar a coisa??
Já tentei retirar [[em Ne00 ou em Ne01]], mas tambem dá erro."
Comentário:
Como possível solução, inserir, no início das macros, o seguinte código:
Dim sStr As String
sStr = Application.ActivePrinter
Application.EnableEvents = False
On Error Resume Next
Application.ActivePrinter = "Microsoft Office Document Image Writer on Ne02:"
If Err.Number = 1004 Then
Application.ActivePrinter = "Microsoft Office Document Image Writer on Ne01:"
Err.Clear
End If
Tópicos relacionados: