Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Imprimir com numero de Serie.

Esclarecimentos e dúvidas sob o Modelo de Aplicativo de Cadastro em VBA no Microsoft Excel publicado no site e blog http://www.tomasvasquez.com.br
Anderson Ferraz
Acabou de chegar
Acabou de chegar
Mensagens: 3
Registrado em: Sex Mar 29, 2019 8:10 am

Imprimir com numero de Serie.

Mensagem por Anderson Ferraz »

Olá bom dia pessoal, sou novo aqui e tbm novo com vba, e preciso de uma ajuda, estou criando um formulário no Excel que pode ser preenchida pelo computador ou a mão pelo usuário, então criei uma Userform para controlar alguns dados, numero de serie do documento q vai na célula (SERIE) e para salvar em xls. salvar em PDF e para imprimir, to usando a seguinte macro pra imprimir:

Sub Imprime()

ActiveWindow.SelectedSheets.PrintOut Copies:=Textbox2.Value, Collate:=True, _
IgnorePrintAreas:=FalseOrder = xlOverThenDown

End Sub

Quando o usuário for imprimir ele define a quantidade de cópias pelo Textbox2, até ai tudo certo. Porém gostaria que quando ele imprimisse várias cópias, pudesse mudar automaticamente o numero do documento que fica na célula (SERIE) cada cópia. Também usei a seguinte macro mudar o valor da célula (SERIE)

Sub Serial ()

Range("SERIE").Value = Range("SERIE").Value + 1

End Sub

Mais não consigo juntar as duas pra realizar o q eu preciso, será q poderiam me ajudar


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Imprimir com numero de Serie.

Mensagem por Reinaldo »

Sem testar, mas experimente

Código: Selecionar todos

Sub Imprime()
Dim Qtde As Integer, x As Integer
'Caso textbox2 fique sem valor
If Textbox2.Value = "" Then
    x = 1
Else
    x = Textbox2.Value
End If
For Qtde = 1 To x
    ActiveWindow.SelectedSheets.PrintOut Copies:=Qtde, Collate:=True, _
    IgnorePrintAreas:=FalseOrder = xlOverThenDown
Range("SERIE").Value = Range("SERIE").Value + 1
Next
End Sub


Anderson Ferraz
Acabou de chegar
Acabou de chegar
Mensagens: 3
Registrado em: Sex Mar 29, 2019 8:10 am

Re: Imprimir com numero de Serie.

Mensagem por Anderson Ferraz »

bom dia Reinaldo

Obrigado pela ajuda só to conseguindo testar hoje, a macro funcionou só q ta imprimindo a qtde de cópia do Textbox2 exemplo: insiro 2 copias no Textbox2 ela imprime 2 cópias de cada formulário q ela alterou 2 cópias do formulário 1, 2 cópias do formulário 2


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Imprimir com numero de Serie.

Mensagem por Reinaldo »

Não entendi? A impressão e da planilha selecionada/em evidencia "SelectedSheets", nada sobre formulario(s)


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Anderson Ferraz
Acabou de chegar
Acabou de chegar
Mensagens: 3
Registrado em: Sex Mar 29, 2019 8:10 am

Re: Imprimir com numero de Serie.

Mensagem por Anderson Ferraz »

Oi Reinaldo,

Ela faz a alteração na da "SERIE", e imprime a "SelectedSheets", porém ela imprime a quantidade de cópias da Textbox2. exemplo:

se eu preencho a Textbox2 com valor "4" ela deveria imprimir, a primeira impressão célula "SERIE" valor "1", Segunda impressão "SERIE" valor "2" , terceira impressão "SERIE" valor "3", impressão "SERIE" valor "4".


Só q ela imprime 4 cópias da impressão "1", 4 impressão "2", 4 impressão "3", 4 impressão "4".

Obs. o documento é chamado de formulário de permissão pra trabalho por o equivoco, me expressei errado na msg anterior


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Imprimir com numero de Serie.

Mensagem por Reinaldo »

Como disse sem testar por estar postando uma rotina às cegas (sem ver/enxergar seu modelo/realidade)
o trecho:
IgnorePrintAreas:=FalseOrder = xlOverThenDown
Range("SERIE").Value = Range("SERIE").Value + 1
deveria a cada impressão alterar essa celula (range("serie")) se não acontece, e necessario "ver" seu modelo


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder