Página 1 de 2
Macro de Contar impressão
Enviado: 23 Jun 2017 às 09:01
por FelipeBarbosa
Bom dia Pessoal,
Tenho uma macro que quando acionada para impressão ela copia o valor do documento e cola esse numero em outra celula, com base nesses numeros colados, gera-se um banco de dados para dizer se foi impresso ou não.
O meu problema é que quando dou imprimir e coloco o intervalo de impressão, ele sempre sai uma folha a mais, e é justamente a área onde os números são colados, alguém poderia me ajudar? Segue em anexo a planilha e abaixo a macro. Obrigado desde já.
Re: Macro de Contar impressão
Enviado: 23 Jun 2017 às 09:09
por FelipeBarbosa
Segue a macro em anexo.
Re: Macro de Contar impressão
Enviado: 23 Jun 2017 às 09:26
por osvaldomp
Sugestão - sem considerar o seu código, informe exatamente o que você quer fazer.
Re: Macro de Contar impressão
Enviado: 23 Jun 2017 às 11:50
por FelipeBarbosa
osvaldomp escreveu:Sugestão - sem considerar o seu código, informe exatamente o que você quer fazer.
Na hora de imprimir, não quero que essa ultima folha seja impressa, somente a área que defino está ótimo, mas não sei como sai essa pagina a mais.
Re: Macro de Contar impressão
Enviado: 23 Jun 2017 às 13:06
por osvaldomp
1. qual o intervalo que você quer imprimir ? ~~~> exemplo: 'A1:BJ500'
2. quantas cópias ?
3. só frente ou frente e verso ?
Re: Macro de Contar impressão
Enviado: 26 Jun 2017 às 06:28
por FelipeBarbosa
osvaldomp escreveu:1. qual o intervalo que você quer imprimir ? ~~~> exemplo: 'A1:BJ500'
2. quantas cópias ?
3. só frente ou frente e verso ?
1. O intervalo é determinado pela pessoa que imprime, aparece a tela de setup da impressão e ele coloca por exemplo imprimir 1 de 10.
2. 1 cópia
3 Sim é frente e verso e a impressora já fica pré configura para isso.
O problema é que mesmo a pessoa configurando o intervalo 1 de 10 (ou 1 de 2...etc) , ainda sai uma pagina a mais com o intervalo da cópia que a macro faz para a coluna BT.
Re: Macro de Contar impressão
Enviado: 26 Jun 2017 às 10:23
por osvaldomp
Veja se entendi a sua necessidade.
1. o usuário coloca em 'AT1' e em 'AT2' o intervalo dos números das OFs que deseja imprimir (no seu exemplo está 67327 e 67329)
2. aí você quer imprimir uma via da OF e mais uma via do Apontamento, frente e verso, para cada número do item 1 acima ?
ex. imprimir uma folha com OF 67327 e no verso dessa folha imprimir Apontamento 67327,
idem para 67328 e 67329 ?
3. então o intervalo a ser impresso será 'B1:AN115'
sugestão - se for isso, podemos escrever um novo código que fará o trabalho ao clicar no botão, sem que o usuário precise determinar o intervalo a ser impresso, pois o intervalo constará no código, e o código irá numerar as OFs conforme os números colocados em 'AT1:AT2'. Me parece menos trabalhoso escrever um código novo do que revisar o seu.
Re: Macro de Contar impressão
Enviado: 27 Jun 2017 às 06:57
por FelipeBarbosa
osvaldomp escreveu:Veja se entendi a sua necessidade.
1. o usuário coloca em 'AT1' e em 'AT2' o intervalo dos números das OFs que deseja imprimir (no seu exemplo está 67327 e 67329)
2. aí você quer imprimir uma via da OF e mais uma via do Apontamento, frente e verso, para cada número do item 1 acima ?
ex. imprimir uma folha com OF 67327 e no verso dessa folha imprimir Apontamento 67327,
idem para 67328 e 67329 ?
3. então o intervalo a ser impresso será 'B1:AN115'
sugestão - se for isso, podemos escrever um novo código que fará o trabalho ao clicar no botão, sem que o usuário precise determinar o intervalo a ser impresso, pois o intervalo constará no código, e o código irá numerar as OFs conforme os números colocados em 'AT1:AT2'. Me parece menos trabalhoso escrever um código novo do que revisar o seu.
Exato, é dessa forma que funciona Osvaldo, o codigo hoje já funciona, porém tem problemas, que é o caso da folha que sai a mais. Hoje ele imprime a folha da OF na frente e a de apontamento no verso, conforme você descreveu (Impressora tem a função frente e verso).
Tem como criar o código que você disse para que a Macro determine o intervalo de acordo com o digitado de AT1 a AT2? Se sim, poderia me ajudar com isso?
Re: Macro de Contar impressão
Enviado: 27 Jun 2017 às 10:10
por osvaldomp
Experimente o código abaixo. O resultado esperado ao rodar esse código é o que comentei no último post.
Código: Selecionar todosSub ImprimeOFeApont()
Dim k As Long
With Sheets("INJETORA")
If .[AT1] < .[AT2] Or Application.CountA(.[AT1:AT2]) < 2 Then
MsgBox "verifique os números desejados para as OFs"
Exit Sub
End If
For k = .[AT2] To .[AT1]
.[AG4] = k
.PageSetup.PrintArea = "$B$1:$AN$115"
.PrintOut Copies:=1, Collate:=True
Next k
End With
End Sub
obs. antes de testar desfaça a mesclagem de células na célula 'AL57', pois a mesclagem está "invadindo" até a coluna 'AO'
Re: Macro de Contar impressão
Enviado: 27 Jun 2017 às 10:27
por FelipeBarbosa
osvaldomp escreveu:Experimente o código abaixo. O resultado esperado ao rodar esse código é o que comentei no último post.
Código: Selecionar todosSub ImprimeOFeApont()
Dim k As Long
With Sheets("INJETORA")
If .[AT1] < .[AT2] Or Application.CountA(.[AT1:AT2]) < 2 Then
MsgBox "verifique os números desejados para as OFs"
Exit Sub
End If
For k = .[AT2] To .[AT1]
.[AG4] = k
.PageSetup.PrintArea = "$B$1:$AN$115"
.PrintOut Copies:=1, Collate:=True
Next k
End With
End Sub
obs. antes de testar desfaça a mesclagem de células na célula 'AL57', pois a mesclagem está "invadindo" até a coluna 'AO'
Osvaldo, o problema é que não é somente duas paginas, por exemplo, eu sempre preciso colocar para imprimir da OF 67329 até 67335 ai no contador vai aparacer imprimir 1 - 14. Por isso hoje o outro código abre o PrintPreview para o o usuário digitar de que pagina a que pagina deseja imprimir.
Acha que consegue incluir isso no codigo, para a macro imprimir do intervalo AW3 até o AY3?
Re: Macro de Contar impressão
Enviado: 27 Jun 2017 às 10:35
por osvaldomp
Felipe, vamos por partes, antes de introduzir outros pontos no código, informe se você testou o código que passei e se o resultado foi o esperado de acordo com o que eu comentei no post anterior, e só depois que essa primeira parte estiver satisfatória trataremos dos outros pontos.
Re: Macro de Contar impressão
Enviado: 27 Jun 2017 às 10:37
por FelipeBarbosa
osvaldomp escreveu:Felipe, vamos por partes, antes de introduzir outros pontos no código, informe se você testou o código que passei e se o resultado foi o esperado de acordo com o que eu comentei no post anterior, e só depois que essa primeira parte estiver satisfatória trataremos dos outros pontos.
Sim, eu testei o código, desfiz o mesclar da célula informada. Atende o que você descreveu.
Re: Macro de Contar impressão
Enviado: 27 Jun 2017 às 11:32
por osvaldomp
FelipeBarbosa escreveu:
... o problema é que não é somente duas paginas, por exemplo, eu sempre preciso colocar para imprimir da OF 67329 até 67335 ai no contador vai aparacer imprimir 1 - 14. Por isso hoje o outro código abre o PrintPreview para o o usuário digitar de que pagina a que pagina deseja imprimir.
Acha que consegue incluir isso no codigo, para a macro imprimir do intervalo AW3 até o AY3?
Se você quer imprimir da OF 67329 até a OF 67335 basta colocar esses números em AT2 = 67329 e em AT1=67335 e rodar o código que passei. Assim serão impressas 7 OFs, com os números desejados, e a folha Apontamento no verso, não precisamos de
contador, não precisamos abrir o
PrintView e tampouco precisamos do que está em '
AW3' e em '
AY3'.
sugestão - para responder clique em
+ Resposta localizado abaixo da última postagem, só clique em
Responder com citação se necessário.
Re: Macro de Contar impressão
Enviado: 29 Jun 2017 às 11:59
por FelipeBarbosa
Aparentemente deu certo, porém temos alguma probleminhas que estão ocorrendo.
O que a linha ".[AG4] = k" faz? Pois acabou substituindo uma formula que havia nessa celula, tem como referenciarmos em outra celula isso? Até tentei, mas ai ele imprimi todas as páginas iguais.
Já melhorou bastante do que eu tinha, te agradeço
Re: Macro de Contar impressão
Enviado: 29 Jun 2017 às 13:06
por osvaldomp
FelipeBarbosa escreveu:O que a linha ".[AG4] = k" faz? Pois acabou substituindo uma formula que havia nessa celula...
O código coloca em 'AG4' o número da OF a ser impressa. Sim, antes havia um PROCV naquela célula que buscava o número da OF, agora o código faz isso, não precisa mais de fórmula.
Macro de Contar impressão
Enviado: 30 Jun 2017 às 06:56
por FelipeBarbosa
Toda a impressão depende da célula AG4, pois outras células puxam PROCV dela, e por isso quando ele cola o código na hora da impressão acaba não puxando automático o restante das células e minha folha sai com a maioria dos campos em branco.
O que podemos fazer?
Re: Macro de Contar impressão
Enviado: 30 Jun 2017 às 07:59
por osvaldomp
O conteúdo de 'AG4', se for por resultado de fórmula ou for inserido pelo código, é igual, ou seja, é sempre o número da OF a ser impressa, por isso não entendo o problema que você comentou.
Você pode testar assim: coloque a fórmula em 'AG4' e desative a linha do código que insere o número da OF colocando um apóstrofo no início da linha ~~~> '.[AG4] = k
Re: Macro de Contar impressão
Enviado: 30 Jun 2017 às 08:29
por FelipeBarbosa
Também não sei o porque, mas talvez ele não consiga ler o numero antes da impressão e não traga os valores, é uma suposição.
Mas vou Testar conforme você falou
Re: Macro de Contar impressão
Enviado: 30 Jun 2017 às 11:53
por FelipeBarbosa
Desabilitando ele, imprime todas as paginas iguais.
Re: Macro de Contar impressão
Enviado: 30 Jun 2017 às 12:35
por osvaldomp
FelipeBarbosa escreveu:Toda a impressão depende da célula AG4, pois outras células puxam PROCV dela, e por isso quando ele cola o código na hora da impressão acaba não puxando automático o restante das células e minha folha sai com a maioria dos campos em branco.
Quais os números que você colocou em 'AT1' e em 'AT2' para fazer o teste acima ?