Como alterar o número inicial da fatura no loop do VBA

0

Tentando implementar essa macro - Alterando um número a cada vez que imprimo .

No momento, estou tentando usar uma macro para alterar um número de fatura quando estou imprimindo um lote.

***Sub PrintCopies_ActiveSheet()
Dim CopiesCount As Long
Dim copynumber As Long

CopiesCount = Application.InputBox("How many copies do you want?", Type:=1)
'Now the program wants you to input how many pages you like to print.
'You can input 100 here.

For copynumber = 1 To CopiesCount
With ActiveSheet
   .Range("E1").Value = copynumber 'I assume your invoice number is in cell E1.
   .PrintOut 'Print the sheet

End With
Next copynumber
End Sub***

Funciona como está, mas quero imprimir um lote de faturas a partir da fatura número 400. Quando tento alterar essa parte

For copynumber = 1 To CopiesCount

para

For copynumber = 400 To CopiesCount

não funciona. (Essa alteração foi sugerida em um comentário sobre a resposta aceita na pergunta vinculada).

Como posso alterar o código para que eu possa especificar o número inicial da fatura?

    
por BMKVBR 11.10.2017 / 11:36

1 resposta

0

Tente este código alterado. Eu adicionei duas novas variáveis ( start e limit ) que tornam esse código mais facilmente personalizado para impressão de números de fatura. Existe agora um segundo prompt de usuário para o número inicial da fatura. limit é calculado a partir das duas entradas do usuário.

Sub PrintCopies_ActiveSheet()
Dim CopiesCount As Long
Dim copynumber As Long
Dim start as Variant, limit As Long

CopiesCount = Application.InputBox("How many copies do you want?", Type:=1)
'Now the program wants you to input how many pages you like to print.
'You can input 100 here.

'starting invoice number
start = Application.InputBox("Start sequence at what invoice number?", Type:=1)  

'This gives you the ability to cancel the macro by clicking Cancel.
If start = "False" Then
    Exit Sub
End If

limit = start + CopiesCount - 1   'last invoice number to print


For copynumber = start To limit
    With ActiveSheet
       .Range("E1").Value = copynumber 'I assume your invoice number is in cell E1.
       .PrintOut 'Print the sheet

    End With
Next copynumber
End Sub
    
por 11.10.2017 / 15:24