ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   For Each Statement not working as expected (https://www.excelbanter.com/excel-programming/344451-each-statement-not-working-expected.html)

Jacqui

For Each Statement not working as expected
 
I have the following syntax using a For Each statement to check column c and
if this contains a value which is NOT in bold text, the code checks columns
K:N and if these cells are empty the user receives an error message via a
msgbox. However if I deliberately create known errors on the sheet the
syntax is finding the first occurance only and ignoring the others. How can
I fix please, the VBA is below

Thanks
Jacqui

Sub Qualifiers_Check()

Set wks = ActiveWorkbook.Worksheets("Part B - Coding Details")

With wks

Set myRng = .Range("c20", .Cells(.Rows.Count, "c").End(xlUp))

Set myRng = myRng.Resize(myRng.Count - 1)

For Each myCell In myRng.Cells
If IsEmpty(myCell.Value) = False And Not myCell.Font.Bold Then
Set myRngToCheck = .Cells(myCell.Row, "k").Resize(1, 4)
If Application.CountA(myRngToCheck) < myRngToCheck.Cells.Count
Then
Beep
MsgBox "You have not supplied all the relevant information
for this Segment type in Row " _
& myCell.Row & " on the Coding Details Sheet - PLEASE ENTER
ALL DETAILS"

End If
End If
Next myCell

End With

End Sub



Carlos[_6_]

For Each Statement not working as expected
 
Hi Jacqui

in line -Set myRngToCheck = .Cells(myCell.Row, "k").Resize(1, 4)- missing
object

Try -Set myRngToCheck = ActiveSheet.Cells(myCell.Row, "k").Resize(1, 4)-

Carlos
"Jacqui" wrote in message
...
I have the following syntax using a For Each statement to check column c
and
if this contains a value which is NOT in bold text, the code checks
columns
K:N and if these cells are empty the user receives an error message via a
msgbox. However if I deliberately create known errors on the sheet the
syntax is finding the first occurance only and ignoring the others. How
can
I fix please, the VBA is below

Thanks
Jacqui

Sub Qualifiers_Check()

Set wks = ActiveWorkbook.Worksheets("Part B - Coding Details")

With wks

Set myRng = .Range("c20", .Cells(.Rows.Count, "c").End(xlUp))

Set myRng = myRng.Resize(myRng.Count - 1)

For Each myCell In myRng.Cells
If IsEmpty(myCell.Value) = False And Not myCell.Font.Bold Then
Set myRngToCheck = .Cells(myCell.Row, "k").Resize(1, 4)
If Application.CountA(myRngToCheck) < myRngToCheck.Cells.Count
Then
Beep
MsgBox "You have not supplied all the relevant information
for this Segment type in Row " _
& myCell.Row & " on the Coding Details Sheet - PLEASE
ENTER
ALL DETAILS"

End If
End If
Next myCell

End With

End Sub






All times are GMT +1. The time now is 12:08 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com