ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Help with instring code (https://www.excelbanter.com/excel-programming/323572-help-instring-code.html)

Elaine

Help with instring code
 
I have a line of code that sees if a subtotal contains the text "00 total".
However, some of the totals can be "01 total", "04 total". All totals have 0
as their second last number but not as their last number. Is there an easy
way to correct the following code to take care of this discrepancy?

If InStr(1, LCase(rngCell.Value), "00 total") 0 And _
InStr(1, LCase(rngCell.Offset(1, -2).Value), "total") = 0 Then
rngCell.Offset(2, 0).FormulaR1C1 = "=R[3]C[1]"

--Elaine

Jim Cone

Help with instring code
 
Elaine,

The Like operator can do what you ask, so just changing the first line...

'--------------------------
If rngCell.Value Like "*0# total*" And _
InStr(1, LCase(rngCell.Offset(1, -2).Value), "total") = 0 Then
rngCell.Offset(2, 0).FormulaR1C1 = "=R[3]C[1]"
End If
'--------------------------

Regards,
Jim Cone
San Francisco, USA

"Elaine" wrote in message ...
I have a line of code that sees if a subtotal contains the text "00 total".
However, some of the totals can be "01 total", "04 total". All totals have 0
as their second last number but not as their last number. Is there an easy
way to correct the following code to take care of this discrepancy?

If InStr(1, LCase(rngCell.Value), "00 total") 0 And _
InStr(1, LCase(rngCell.Offset(1, -2).Value), "total") = 0 Then
rngCell.Offset(2, 0).FormulaR1C1 = "=R[3]C[1]"

--Elaine


Elaine

Help with instring code
 
Jim:

I tried it but it did not work. I am not sure what it is that I am doing
incorrectly. I replaced your line with the one that I had and now it looks
just the way you have it. However, nothing happens -- the code doesn't seem
to find anything -- including the 00 totals! Could you please help again?


"Jim Cone" wrote:

Elaine,

The Like operator can do what you ask, so just changing the first line...

'--------------------------
If rngCell.Value Like "*0# total*" And _
InStr(1, LCase(rngCell.Offset(1, -2).Value), "total") = 0 Then
rngCell.Offset(2, 0).FormulaR1C1 = "=R[3]C[1]"
End If
'--------------------------

Regards,
Jim Cone
San Francisco, USA

"Elaine" wrote in message ...
I have a line of code that sees if a subtotal contains the text "00 total".
However, some of the totals can be "01 total", "04 total". All totals have 0
as their second last number but not as their last number. Is there an easy
way to correct the following code to take care of this discrepancy?

If InStr(1, LCase(rngCell.Value), "00 total") 0 And _
InStr(1, LCase(rngCell.Offset(1, -2).Value), "total") = 0 Then
rngCell.Offset(2, 0).FormulaR1C1 = "=R[3]C[1]"

--Elaine



Jim Cone

Help with instring code
 
Elaine,

First thing is to do is remove the "End If", line 4 of my response.
It should not be there. Only the first line should have
been changed.

If that wasn't the problem then have you changed anything else...

Does the code have " _" at the end of the first line?
Is the code still in the same module?
Do you have an "Option Compare Text" statement at the top of the module?
Are you testing the same data?
Can you determine if it is the "Like" operator or is it the "Instr" function that
is failing? ( by stepping thru the code)

Regards,
Jim Cone


"Elaine" wrote in message ...
Jim:

I tried it but it did not work. I am not sure what it is that I am doing
incorrectly. I replaced your line with the one that I had and now it looks
just the way you have it. However, nothing happens -- the code doesn't seem
to find anything -- including the 00 totals! Could you please help again?


"Jim Cone" wrote:
Elaine,
The Like operator can do what you ask, so just changing the first line...
'--------------------------
If rngCell.Value Like "*0# total*" And _
InStr(1, LCase(rngCell.Offset(1, -2).Value), "total") = 0 Then
rngCell.Offset(2, 0).FormulaR1C1 = "=R[3]C[1]"
End If
'--------------------------
Regards,
Jim Cone
San Francisco, USA




"Elaine" wrote in message

...
I have a line of code that sees if a subtotal contains the text "00 total".
However, some of the totals can be "01 total", "04 total". All totals have 0
as their second last number but not as their last number. Is there an easy
way to correct the following code to take care of this discrepancy?
If InStr(1, LCase(rngCell.Value), "00 total") 0 And _
InStr(1, LCase(rngCell.Offset(1, -2).Value), "total") = 0 Then
rngCell.Offset(2, 0).FormulaR1C1 = "=R[3]C[1]"
--Elaine


Tom Ogilvy

Help with instring code
 
If InStr(1, Application.Trim(rngCell.Value), "00 total",vbTextCompare)
0 And _
InStr(1, rngCell.Offset(1, -2).Value, "total",vbTextCompare) = 0
Then
rngCell.Offset(2, 0).FormulaR1C1 = "=R[3]C[1]"


Also, if this data is brought down from the web, the space may not be a
space. It may be a non-breaking space. Is this data brought down from the
web?

--
Regards,
Tom Ogilvy


"Elaine" wrote in message
...
I have a line of code that sees if a subtotal contains the text "00

total".
However, some of the totals can be "01 total", "04 total". All totals have

0
as their second last number but not as their last number. Is there an easy
way to correct the following code to take care of this discrepancy?

If InStr(1, LCase(rngCell.Value), "00 total") 0 And _
InStr(1, LCase(rngCell.Offset(1, -2).Value), "total") = 0 Then
rngCell.Offset(2, 0).FormulaR1C1 = "=R[3]C[1]"

--Elaine




Elaine

Help with instring code
 
Tom and Jim thank you very much for your replies. I did not declare Option
Compare Text in the top of my module. Thank you for your very specific and
generous help.

"Elaine" wrote:

I have a line of code that sees if a subtotal contains the text "00 total".
However, some of the totals can be "01 total", "04 total". All totals have 0
as their second last number but not as their last number. Is there an easy
way to correct the following code to take care of this discrepancy?

If InStr(1, LCase(rngCell.Value), "00 total") 0 And _
InStr(1, LCase(rngCell.Offset(1, -2).Value), "total") = 0 Then
rngCell.Offset(2, 0).FormulaR1C1 = "=R[3]C[1]"

--Elaine


Tom Ogilvy

Help with instring code
 
Declaring Option Compare Text
shouldn't make a difference in your original code since you converted it to
lowercase in passing it to instr. and total was expressed as lowercase. In
my example, I did away with the Lcase and use vbCompareText as an argument
to instr, so it isn't required there either.

--
Regards,
Tom Ogilvy





"Elaine" wrote in message
...
Tom and Jim thank you very much for your replies. I did not declare Option
Compare Text in the top of my module. Thank you for your very specific and
generous help.

"Elaine" wrote:

I have a line of code that sees if a subtotal contains the text "00

total".
However, some of the totals can be "01 total", "04 total". All totals

have 0
as their second last number but not as their last number. Is there an

easy
way to correct the following code to take care of this discrepancy?

If InStr(1, LCase(rngCell.Value), "00 total") 0 And _
InStr(1, LCase(rngCell.Offset(1, -2).Value), "total") = 0 Then
rngCell.Offset(2, 0).FormulaR1C1 = "=R[3]C[1]"

--Elaine





All times are GMT +1. The time now is 12:35 PM.

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