I have a userform with 2 pages(Multipage). As soon as a user is in ReadWrite Access and another user opens the file to ReadOnly I get an error on the following line: Sheets("Billings").Range("C1").AutoFilter

What the code does is as soon as page 1 is selected it filters a worksheet in the workbook and upload the filtered data copies it to a new worksheet. On page 1 I have a text box which is referanced to the new worksheet and it then displays the data.
Refer listed code


Private Sub multpgContracts_Change()

' If multpgContracts.Value = 1 Then
' If SupplNo = "No SAP No" Then End
' combinedata
' Sheets("Billinglist").Select
' Me.lslBillingDetails.RowSource = Sheets("Billinglist").Range("A1:h30").Address
' Me.lslBillingDetails.ColumnWidths = "60;0;275;65;0;25;60;50"
'
' Else: Sheets("Billings").Range("C1").AutoFilter
' Sheets("Billinglist").Range("A1:H30").Clear
' Sheets("Original").Select
'
' End If

End Sub

Sub combinedata()
Dim supplnos As String

supplnos = "=" & SupplNo & "*"
Sheets("Billings").Range("A1").AutoFilter Field:=3, Criteria1:=supplnos, Operator:=xlAnd
Sheets("Billings").Range("A1").CurrentRegion.Copy
Sheets("BillingList").Range("A1").PasteSpecial

End Sub

This code populate Page 0. On page 0 there is a listbox called select_tt.supp_name that the user selects from and then from the rownumber selected the other text boxes is populated.

Private Sub supp_name_Click()
Dim crno As Integer

crno = select_tt.supp_name.Value + 2

'CONTRACT DETAILS

Contract_no = Cells(crno, (Range("Agreement_No").Column))

PassContract_no (Contract_no)

'Contract Period

If Cells(crno, (Range("Contract_From").Column)) <> "" And Cells(crno, (Range("Contract_To").Column)) <> "" Then _
Period_list_box = Cells(crno, (Range("Contract_From").Column)).Text & " to " & Cells(crno, (Range("Contract_To").Column)).Text
If Cells(crno, (Range("Contract_From").Column)) <> "" And Cells(crno, (Range("Contract_To").Column)) = "" Then _
Period_list_box = Cells(crno, (Range("Contract_From").Column)).Text & " ongoing"
If Cells(crno, (Range("Contract_From").Column)) = "" Then Period_list_box = "Not known"

Other_detail = Cells(crno, (Range("Other_Detail").Column))
Prod_range = Cells(crno, (Range("Product_Range").Column))

Acc_Sup_No = Format(Cells(crno, (Range("Acc_Sup_No").Column)), "0##-###")

Any help or suggestions on simplifying the code will be appreciated.