Forum Discussion
Automatically inserting a sequential invoice number
- 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 SubRunning 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.
Is there a way to create a save as button that will save the filename as the invoice number? HansVogelaar
Using a variation of the code in my previous reply (invoice number in D1 on Sheet1), you could run the following macro from another workbook. Just make sure the invoice workbook is the active workbook when you run the macro.
Sub SaveInvoices()
Dim i As Long
Dim n As Long
Dim p As String
n = Val(InputBox("How many copies do you want to print?"))
p = ActiveWorkbook.Path
If Right(p, 1) <> Application.PathSeparator Then
p = p & Application.PathSeparator
End If
For i = 1 To n
With Worksheets("Sheet1").Range("D1")
.Value = .Value + 1
ActiveWorkbook.SaveCopyAs p & "Invoice " & .Value & ".xlsx"
End With
Next i
End Sub