ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   UDF that checks if a cell contains a period. (https://www.excelbanter.com/excel-programming/423517-udf-checks-if-cell-contains-period.html)

Jonathan Brown

UDF that checks if a cell contains a period.
 
I have a User Defined function that counts the cells in a range that meet a
certain criteria. The criteria a

1. does not contain a formula
2. is not a number
3. is not blank
4. contains a period.

I can get it to figure out the first three criteria, but I can't figure out
the expression to check to see if the cell contains a period.

Here's what my code looks like:

Function Jonathan(rng As Range) As Long

Dim c As Range

For Each c In rng

If c.HasFormula = False And c.Value < "" And Not IsNumeric(c.Value)
And _
c.Value = "*.*" Then

Jonathan = Jonathan + 1

End If

Next

End Function

It seems to be taking the c.value = "*.*" as a string literal and there
doesn't seem to be a VBA equivalent to the .Net version of the .contains()
method. Any ideas would be greatly appreciated.

Thanks.

ker_01

UDF that checks if a cell contains a period.
 
Check the help file for "Instr" which works like "Find" in a normal formula
(but with the terms reversed, IIRC).

(aircode)
not(iserror((Instr(c.Value,".")))

then the wraparound is because if it doesn't find a period it returns an
error (otherwise it returns a position) so the not/iserror gives you a "true"
if a period is found.

HTH
Keith

"Jonathan Brown" wrote:

I have a User Defined function that counts the cells in a range that meet a
certain criteria. The criteria a

1. does not contain a formula
2. is not a number
3. is not blank
4. contains a period.

I can get it to figure out the first three criteria, but I can't figure out
the expression to check to see if the cell contains a period.

Here's what my code looks like:

Function Jonathan(rng As Range) As Long

Dim c As Range

For Each c In rng

If c.HasFormula = False And c.Value < "" And Not IsNumeric(c.Value)
And _
c.Value = "*.*" Then

Jonathan = Jonathan + 1

End If

Next

End Function

It seems to be taking the c.value = "*.*" as a string literal and there
doesn't seem to be a VBA equivalent to the .Net version of the .contains()
method. Any ideas would be greatly appreciated.

Thanks.


Dave Peterson

UDF that checks if a cell contains a period.
 
VBA has its own instr function:
if instr(1,c.value, ".", vbtextcompare) 0 then
'it has a dot
...

Or you could use Like:
if c.value like "*.*" then

(I'd use instr.)



Jonathan Brown wrote:

I have a User Defined function that counts the cells in a range that meet a
certain criteria. The criteria a

1. does not contain a formula
2. is not a number
3. is not blank
4. contains a period.

I can get it to figure out the first three criteria, but I can't figure out
the expression to check to see if the cell contains a period.

Here's what my code looks like:

Function Jonathan(rng As Range) As Long

Dim c As Range

For Each c In rng

If c.HasFormula = False And c.Value < "" And Not IsNumeric(c.Value)
And _
c.Value = "*.*" Then

Jonathan = Jonathan + 1

End If

Next

End Function

It seems to be taking the c.value = "*.*" as a string literal and there
doesn't seem to be a VBA equivalent to the .Net version of the .contains()
method. Any ideas would be greatly appreciated.

Thanks.


--

Dave Peterson

Per Jessen[_2_]

UDF that checks if a cell contains a period.
 
Hi

This should do it:

If c.HasFormula = False And c.Value < "" And Not IsNumeric(c.Value)
And _
InStr(1, c.Value, ".") Then

Regards,
Per


On 6 Feb., 02:09, Jonathan Brown
wrote:
I have a User Defined function that counts the cells in a range that meet a
certain criteria. *The criteria a

1. does not contain a formula
2. is not a number
3. is not blank
4. contains a period.

I can get it to figure out the first three criteria, but I can't figure out
the expression to check to see if the cell contains a period.

Here's what my code looks like:

Function Jonathan(rng As Range) As Long

* * Dim c As Range

* * For Each c In rng

* * * * If c.HasFormula = False And c.Value < "" And Not IsNumeric(c.Value)
And _
* * * * c.Value = "*.*" Then

* * * * * * Jonathan = Jonathan + 1

* * * * End If

* * Next

End Function

It seems to be taking the c.value = "*.*" as a string literal and there
doesn't seem to be a VBA equivalent to the .Net version of the .contains()
method. *Any ideas would be greatly appreciated.

Thanks.



Rick Rothstein

UDF that checks if a cell contains a period.
 
The only thing I would add to the other posts is the you do NOT have to
check if the cell is empty... you are requiring the cell's text to have a
period; so if the cell's text has that character in it, then, by definition,
it can't be empty (so the test is not needed).

--
Rick (MVP - Excel)


"Jonathan Brown" wrote in message
...
I have a User Defined function that counts the cells in a range that meet a
certain criteria. The criteria a

1. does not contain a formula
2. is not a number
3. is not blank
4. contains a period.

I can get it to figure out the first three criteria, but I can't figure
out
the expression to check to see if the cell contains a period.

Here's what my code looks like:

Function Jonathan(rng As Range) As Long

Dim c As Range

For Each c In rng

If c.HasFormula = False And c.Value < "" And Not
IsNumeric(c.Value)
And _
c.Value = "*.*" Then

Jonathan = Jonathan + 1

End If

Next

End Function

It seems to be taking the c.value = "*.*" as a string literal and there
doesn't seem to be a VBA equivalent to the .Net version of the .contains()
method. Any ideas would be greatly appreciated.

Thanks.




All times are GMT +1. The time now is 02:32 PM.

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