Morning All,
I have a code in my receiving stock database and in the end when I press 'Receive stock" VBA code
Compile error : Block If without End if
I added various codes with end if but comes up with various other erros. I realise that at times that I need attach the workbook but its too large!
Here is the code:
Private Sub cmdReceiving_Click()
PreReceipt
Dim x As Integer
Dim nextrow As Range
Dim DateCus As Range
'On Error GoTo cmdOrders_Click_Error
Me.Arec6.value = Format(Me.Arec6.value, "") ' Serial Number
Me.Brec6.value = Format(Me.Brec6.value, "") ' Serial Number
Me.Crec6.value = Format(Me.Crec6.value, "") ' Serial Number
Me.Drec6.value = Format(Me.Drec6.value, "") ' Serial Number
Me.Erec6.value = Format(Me.Erec6.value, "") ' Serial Number
Me.Frec6.value = Format(Me.Frec6.value, "") ' Serial Number
Me.Grec6.value = Format(Me.Grec6.value, "") ' Serial Number
Me.Hrec6.value = Format(Me.Hrec6.value, "") ' Serial Number
Me.Irec6.value = Format(Me.Irec6.value, "") ' Serial Number
If Me.cboReceiving.value = "" Or Me.txtONum.value = "" Or Me.txtDate.value = "" Or Me.Arec1.value = "" Then
MsgBox "No data in Stock"
Exit Sub
Else
Set nextrow = Sheet3.Cells(Rows.Count, 6).End(xlUp).Offset(1, 0)
If WorksheetFunction.CountIf(Sheet7.Range("B:B"), Me.Arec7.value) > 0 Then
MsgBox "WARNING!! LINE 1 : This location for this product needs to be registered first"
Exit Sub
Else
If Arec1.value > "" Then
For x = 1 To 6
nextrow = Me.Controls("Arec" & x).value
Set nextrow = nextrow.Offset(0, 1)
Next
End If
SetmeRec
Set nextrow = Sheet3.Cells(Rows.Count, 6).End(xlUp).Offset(1, 0)
If WorksheetFunction.CountIf(Sheet7.Range("B:B"), Me.Arec7.value) > 0 Then
MsgBox "WARNING!! LINE 2 : This location for this product needs to be registered first"
Exit Sub
Else
If Brec1.value > "" Then
For x = 1 To 6
nextrow = Me.Controls("Brec" & x).value
Set nextrow = nextrow.Offset(0, 1)
Next
End If
SetmeRec
Set nextrow = Sheet3.Cells(Rows.Count, 6).End(xlUp).Offset(1, 0)
If WorksheetFunction.CountIf(Sheet7.Range("B:B"), Me.Arec7.value) > 0 Then
MsgBox "WARNING!! LINE 3 : This location for this product needs to be registered first"
Exit Sub
Else
If Crec1.value > "" Then
For x = 1 To 6
nextrow = Me.Controls("Crec" & x).value
Set nextrow = nextrow.Offset(0, 1)
Next
End If
SetmeRec
Set nextrow = Sheet3.Cells(Rows.Count, 6).End(xlUp).Offset(1, 0)
If WorksheetFunction.CountIf(Sheet7.Range("B:B"), Me.Arec7.value) > 0 Then
MsgBox "WARNING!! LINE 4 : This location for this product needs to be registered first"
Exit Sub
Else
If Drec1.value > "" Then
For x = 1 To 6
nextrow = Me.Controls("Drec" & x).value
Set nextrow = nextrow.Offset(0, 1)
Next
End If
SetmeRec
Set nextrow = Sheet3.Cells(Rows.Count, 6).End(xlUp).Offset(1, 0)
If WorksheetFunction.CountIf(Sheet7.Range("B:B"), Me.Arec7.value) > 0 Then
MsgBox "WARNING!! LINE 5 : This location for this product needs to be registered first"
Exit Sub
Else
If Erec1.value > "" Then
For x = 1 To 6
nextrow = Me.Controls("Erec" & x).value
Set nextrow = nextrow.Offset(0, 1)
Next
End If
SetmeRec
Set nextrow = Sheet3.Cells(Rows.Count, 6).End(xlUp).Offset(1, 0)
If WorksheetFunction.CountIf(Sheet7.Range("B:B"), Me.Arec7.value) > 0 Then
MsgBox "WARNING!! LINE 6 : This location for this product needs to be registered first"
Exit Sub
Else
If Frec1.value > "" Then
For x = 1 To 6
nextrow = Me.Controls("Frec" & x).value
Set nextrow = nextrow.Offset(0, 1)
Next
End If
SetmeRec
Set nextrow = Sheet3.Cells(Rows.Count, 6).End(xlUp).Offset(1, 0)
If WorksheetFunction.CountIf(Sheet7.Range("B:B"), Me.Arec7.value) > 0 Then
MsgBox "WARNING!! LINE 7 : This location for this product needs to be registered first"
Exit Sub
Else
If Grec1.value > "" Then
For x = 1 To 6
nextrow = Me.Controls("Grec" & x).value
Set nextrow = nextrow.Offset(0, 1)
Next
End If
SetmeRec
Set nextrow = Sheet3.Cells(Rows.Count, 6).End(xlUp).Offset(1, 0)
If WorksheetFunction.CountIf(Sheet7.Range("B:B"), Me.Arec7.value) > 0 Then
MsgBox "WARNING!! LINE 8 : This location for this product needs to be registered first"
Exit Sub
Else
If Hrec1.value > "" Then
For x = 1 To 6
nextrow = Me.Controls("Hrec" & x).value
Set nextrow = nextrow.Offset(0, 1)
Next
End If
SetmeRec
Set nextrow = Sheet3.Cells(Rows.Count, 6).End(xlUp).Offset(1, 0)
If WorksheetFunction.CountIf(Sheet7.Range("B:B"), Me.Arec7.value) > 0 Then
MsgBox "WARNING!! LINE 9 : This location for this product needs to be registered first"
Exit Sub
Else
If Irec1.value > "" Then
For x = 1 To 6
nextrow = Me.Controls("Irec" & x).value
Set nextrow = nextrow.Offset(0, 1)
Next
End If
SetmeRec
Recieved
Unload Me
frmReceiving.Show
SortActuallLocCode
End If
End Sub
Thanks
Steve
You're missing about 9 End If lines, since you have nested all your If clauses within each other. It's hard to be sure without the workbook (all you need to do is remove the data to get the size down I suspect), but I suspect they should not be nested, but separate checks. If that's the case, there should be an End If line before each subsequent If block.