Forum Discussion
AJ-FLAME
Aug 12, 2022Copper Contributor
Automatically inserting a sequential invoice number
Hello everyone, Currently I pay a company to print blank invoices with sequential numbers. I am attempting to find a way to print a similar blank invoice (that I have created in excel) but on each ...
- Aug 12, 2022
The code that I posted will only run when you open the workbook.
As an alternative, remove the Workbook_Open code.
Then select Insert > Module in the Visual Basic Editor.
Copy the following code into the module:
Sub PrintInvoices() Dim i As Long Dim n As Long n = Val(InputBox("How many copies do you want to print?")) For i = 1 To n With Worksheets("Sheet1").Range("D1") .Value = .Value + 1 End With Worksheets("Sheet1").PrintOut End With End Sub
Running this macro will prompt you for the number of invoices to be printed. The invoice number will be incremented each time.
If you wish, you can assign the macro to a button on the sheet, or to a Quick Access Toolbar, or to a keyboard shortcut.
HansVogelaar
Jan 16, 2024MVP
Which macro is failing for you?
mander1281
Jan 16, 2024Copper Contributor
Honestly I am not sure! When I did the code you posted Aug 12 2022 06:44 AM it worked perfectly.
Then I was told they want to print like 50 copies at one and have the invoice number change in sequence as it prints so I tried your next code you posted Aug 12 2022 12:24 PM saved as enable macros file and when I go back in to print a few to test it it doesn't prompt me for the amount of invoices to print. And obviously if I print anyway it doesn't work, just prints whatever if on the current page. Any ideas?
Then I was told they want to print like 50 copies at one and have the invoice number change in sequence as it prints so I tried your next code you posted Aug 12 2022 12:24 PM saved as enable macros file and when I go back in to print a few to test it it doesn't prompt me for the amount of invoices to print. And obviously if I print anyway it doesn't work, just prints whatever if on the current page. Any ideas?
- HansVogelaarJan 16, 2024MVP
If you run the macro
Sub PrintInvoices() Dim i As Long Dim n As Long n = Val(InputBox("How many copies do you want to print?")) For i = 1 To n With Worksheets("Sheet1").Range("D1") .Value = .Value + 1 End With Worksheets("Sheet1").PrintOut Next i End Sub
you should see a prompt:
The code will then increment the number in cell D1 on Sheet1 and print that sheet.
If you want to use another sheet or another cell, adjust the code accordingly.