As said, break it down.
This could be your logic:
Code:
...
test AS1 = If Range("AS1") = Empty Then
msg = MsgBox "No Customer selected!", vbInformation, "Customer..."
select = Range("AS1").Select
exit = Exit Sub
close If = End If
test W17 = If Range("W17") = Empty Then
msg = MsgBox "Please add a delivery date!", vbInformation, "Delivery date..."
select = Range("W17").Select
exit = Exit Sub
close If = End If
...
So:
Code:
Sub Check_Info()
Dim i As Long, D, E
Dim answer As Long
D = Array("Original", "Duplicate", "Triplicate")
E = Array("- Customer Copy -", "- Customer Paid Copy -", "- Accounts Copy -")
If Range("AS1") = Empty Then 'Checks if customer has been selected.
MsgBox "No Customer selected!", vbInformation, "Customer..."
Range("AS1").Select
Exit Sub
End If
If Range("W17") = Empty Then 'Checks if there is a delivery date.
MsgBox "Please add a delivery date!", vbInformation, "Delivery date..."
Range("W17").Select
Exit Sub
End If
If Range("W17").Value < Date Then
answer = MsgBox("The delivery date is set in the past." & vbNewLine & "Click OK if date is correct." & vbNewLine & "Click Cancel to change.", vbQuestion + vbOKCancel, "Delivery date!")
If answer = vbCancel Then Range("W17").Select: Exit Sub
End If
If Range("AX17") = Empty Then 'Checks if there is who processed invoice.
MsgBox "Please select Processed By!", vbInformation, "Processed by..."
Range("AX17").Select
Exit Sub
End If
If Range("AZ73").Value = 0 Then
MsgBox "Invoice cannot be £0.00!", vbInformation, "Invoice total..." 'Checks invoice total must be greater than 0.
Exit Sub
End If
' =========== and so on ================================
Application.ActivePrinter = "doPDF v7 on DOP7:" 'Selects doPDF to genarate PDF file of invoice.
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"E:\Lusa\Generated Invoices\INV" & Range("L17").Text & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
Application.Dialogs(xlDialogPrinterSetup).Show '<== changed
Sheets("Invoice").Unprotect Password:="*****" 'Unprotects Saved Invoices sheet to record data from Invoice sheet.
With ActiveSheet
For i = 0 To 2
.Range("T10").Value = D(i)
.Range("T12").Value = E(i)
.PrintOut Copies:=1, Collate:=True
Next i
End With
Sheets("Saved Invoices").Unprotect Password:="*****" 'Unprotects Saved Invoices sheet so that it can record data pulled from Invoice sheet.
Dim Data(1 To 4) As Variant
Dim DstRng As Range
Dim RngEnd As Range
Set DstRng = Worksheets("Saved Invoices").Range("A2:D2")
Set RngEnd = DstRng.Parent.Cells(Rows.Count, DstRng.Column).End(xlUp)
Set DstRng = IIf(RngEnd.Row < DstRng.Row, DstRng, RngEnd.Offset(1, 0).Resize(1, 4))
With Worksheets("Invoice")
Data(1) = .Range("L17") 'Invoice number
Data(2) = .Range("A17") 'Date
Data(3) = .Range("AS1") 'Customer
Data(4) = .Range("AZ73") 'Amount
End With
DstRng = Data
Sheets("Saved Invoices").Protect Password:="*****" 'Protects Saved Invoices sheet so that data is not erased.
Range( _
"AS1:BH1,W17:AJ17,AX17:BH17,I20:AD67,AJ20:AL67,AV20:BB67,G70:T70,AA70:AL70,G71:AL71,G74:P74,G75:P75,Z74:AL74,Z75:AL75,T10,T12" _
).Select
Range("Z75").Activate
Selection.ClearContents
Range("A1:BY1").Select 'Selects cells at top to which zoom is based.
ActiveWindow.Zoom = True
Range("AS1").Select
ActiveWindow.LargeScroll Down:=-5
With Range("L17")
.NumberFormat = "00000"
.Value = .Value + 1
End With
Sheets("Invoice").Protect Password:="*****" 'Protects the Invoice sheet.
ActiveWorkbook.Save
End Sub
Bookmarks