Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
#64946
Bom dia, preciso imprimir os desenhos e ordens de produção de um pedido, de uma única vez.
Os desenhos estão localizados todos na mesma pasta, são arquivos em PDF e são nomeados pelo seu código, o qual existe uma tabela com os códigos que preciso imprimir.
Já o controle é criado a partir de uma consulta de dados em uma base MySQL, onde a macro que imprimi o controle puxa as informações necessárias, joga em uma planilha, ocultando as linhas que sobram, faz o comando de impressão e limpa a planilha para o próximo controle.
Basicamente, o que fiz até o momento e teoricamente está funcionando, é uma macro que faz um loop entre a listagem de códigos, onde primeiramente disparo um código para imprimir o arquivo PDF localizado na pasta dos desenhos, cujo nome seja igual ao código do loop.
Em seguida, chamo a macro que carrega as informações do controle, onde ela faz o processo já mencionado de impressão da planilha e então vai para o próximo código do loop.

O problema: Os PDF são mais pesados, e no código que estou usando, para realizar a impressão , o arquivo PDF é primeiramente carregado e em seguida impresso, fazendo com que o próximo controle seja impresso antes do término do PDF atual, resultando em PDFs e Controles fora de ordem na impressora. O ideal seria PDF/CONTROLE/PDF/CONTROLE....

O ideal MESMO, que seria realmente incrível, seria conseguir realizar a impressão do desenho em PDF e no verso da mesma folha, o controle, porém para isso, creio que a única saída seria criar um PDF do controle (que seria parte de uma planilha) e juntar no mesmo arquivo do desenho, dessa forma resolveria o problema da ordem, além de economizar papel. Porém não encontrei nenhuma solução que não dependa do Adobe Acrobat (Versão paga), a qual não disponibilizamos aqui na empresa.
Mas caso seja possível apenas arrumar a ordem, talvez inserindo algum comando de espera, não sei...

Segue os códigos mencionados:

- Impressão dos arquivos PDF

Public Sub PrintFile(ByVal strPathAndFilename As String)
Call apiShellExecute(Application.hwnd, "print", strPathAndFilename, vbNullString, vbNullString, 0)
End Sub

Sub PRINTER_DESENHO()
PrintFile ("Z:\P.C.P\DESENHOS PDF\" & Planilha6.range("f11").Value & ".pdf") 'IMPRIMI DESENHO
End Sub

- Impressão do controle
Sub PRINTER_CONTROLE()
Planilha6.PrintOut 'IMPRIMI CONTROLE
End Sub

-Macro que realiza a impressão de tudo

Sub imprimi_tudo()
If Planilha1.range("o1").Value > 0 Then
MsgBox "Revise todos os campos antes de efetuar a impressão em massa!"
Exit Sub
End If
If MsgBox("Tem certeza que deseja imprimir todos os desenhos e controles?", vbYesNo) = vbNo Then
Exit Sub
End If
Application.ScreenUpdating = False
Call destrava
For i = 10 To Planilha1.range("e1048576").End(xlUp).Row
Planilha1.Activate
Planilha1.range("e" & i).Select
Planilha6.Activate
Call CARREGA_CONTROLE 'carrega informações do controle com base no codigo do loop
Call PRINTER_CONTROLE
'ADD ALGUM CODIGO DE PAUSA AQUI TALVEZ
Call PRINTER_DESENHO
Next i

Exit Sub
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord