Link to home
Start Free TrialLog in
Avatar of upobDaPlaya
upobDaPlaya

asked on

CountIf unable to evaluate value in cell

I have a VBA COUNTIF statement that will not evaluate a value within a cell unless I go into the call and re-type the cell.  The cell value is text.  As an example in the cell is 10.10.2018.  If I go into the cell and re-type in the value (note I was sent the spreadsheet, I did not type the original value).

When I set a variable to the cell it correctly displays "10.10.2018" (before any re-type.  Thus, why am I forced to re-type in the value in order for the CountIf to recognize the value ?

 Count = Application.CountIf(Cells(5, i), "10.10.2018")
Avatar of Subodh Tiwari (Neeraj)
Subodh Tiwari (Neeraj)
Flag of India image

Since you are not using a wild card in the criteria, the Countif will count if there is an exact match. Maybe the cell contains a leasing or trailing spaces and when you retype you just type the value and it counts correctly.

You may try Countif with a wild card like this...
Count = Application.CountIf(Cells(5, i), "*10.10.2018*")

Open in new window

Or if you just want to check if there is a text "10.10.2018" in the cell, you may try something like this...
If InStr(Cells(5, i), "10.10.2018") > 0 Then
    'do something
End If

Open in new window

Or
Count = InStr(Cells(5, i), "10.10.2018")

Open in new window

Avatar of upobDaPlaya
upobDaPlaya

ASKER

I need to check all cells in a column and if any cell in the column does not equal my variable such as strCk where strCk = '10.10.2018'
then I will stop the code..

I thought the CountIF may be most efficient ?
In that case you may try something like this...

'Say you want to check the occurrence of variable strCk in Column A
If Application.CountIf(Columns("A"), "*" & strCk & "*") > 0 Then
    'do other stuff here
Else
    Exit Sub
End If

Open in new window

If you have a variable which holds the column number to check, you may replace "A" with the variable.
Or just exit the sub if no value is found in the column like...

If Application.CountIf(Columns("A"), "*" & strCk & "*") = 0 Then    
    Exit Sub
End If

Open in new window

Isnt * a wildcard ?  if Column A has "09.09.2018" and strCk has "09.09.2019" would the Count be 0 ?  That would be the hope I desire,
ASKER CERTIFIED SOLUTION
Avatar of Subodh Tiwari (Neeraj)
Subodh Tiwari (Neeraj)
Flag of India image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
ok... i will try in the morning...
Spot on !
Thanks for the feedback!