Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Excel / Programming / February 2006

Tip: Looking for answers? Try searching our database.

I'm trying to do a comparison if statement but it is not working!!

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Brett Smith - 28 Feb 2006 16:16 GMT
I'm trying to do a comparison operator that is being printed on an export
text file.  What I am trying to do is this.  See below:

1) If columns N and M in the worksheet have data, then I want them both
stored into a string variable and then it is to be exported onto a text file.
2) If column N has data and column M is null, then only N is to be stored
into a text string variable and then it is to be exported onto a text file.
3) If column M has data and column N is null, then only column M is to be
stored into a text string variable and then it is to be exported onto a text
file.
4) If columns N and M are null, then nothing is to be stored into the text
string and the line will be skipped on the text file that is to be exported
from Excel.

Everything works fine and the text file displays both of the fields properly
when they both have data, but if one of the columns is blank, then nothing
shows up on the text file.  Why is this happening?  Below is my logic for the
code, please see below.

   If IsEmpty(Cells(I, "N").Value) Or Cells(I, "N").Value = "" Then
               NVariable = ""
           Else: NVariable = Cells(I, "N").Value
           End If
           
           If IsEmpty(Cells(I, "M").Value) Or Cells(I, "M").Value = "" Then
               MVariable = ""
           Else: MVariable = Cells(I, "M").Value
           End If
           
                   
           
           NandMVariable = NVariable + MVariable
           
           If IsEmpty(NandMVariable) Or NandMVariable = "" Then
               NANDMVARSTRING = ""
           ElseIf (NVariable = "" And MVariable <> "") Then
               NANDMVARSTRING = "$DATUM " & MVariable & vbCrLf
            ElseIf (MVariable = "" And NVariable <> "") Then
               NANDMVARSTRING = "$DATUM " & NVariable & vbCrLf
               ElseIf NandMVariable <> "" Then
               NANDMVARSTRING = "$DATUM " & NVariable & "_" & MVariable &
vbCrLf
           End If
Brett Smith - 28 Feb 2006 17:01 GMT
Anybody have any thoughts as to why a simple comparision operator is not
working for me?  Thanks!

> I'm trying to do a comparison operator that is being printed on an export
> text file.  What I am trying to do is this.  See below:
[quoted text clipped - 39 lines]
> vbCrLf
>             End If
JE McGimpsey - 28 Feb 2006 17:21 GMT
First, since you make an assignment to NandMVariable, it should never be
empty, so

   IsEmpty(NandMVariable)

should always return false.

Second, since you're using the + operator, but not getting a Type
mismatch error, I assume your data in N and M is text. If that's the
case, I'd recommend using the & operator.

The only way I got your results was to have numeric data in one cell,
the other cell blank (or text) and have an On Error Resume Next
statement operative. Since that ignores the type mismatch error, no
assignment will be made to NandMVariable so the first IsEmpty() will
return true, and NANDMVARSTRING will be the null string.

However, it appears to me that your routine could be substituted by
something like

   NandMString = ""
   With Cells(I, "M").Resize(1, 2)
      If Len(.Item(1).Text) + Len(.Item(2).Text) Then
         NandMString = "$DATUM " & .Item(1).Text & _
            IIf(Len(.Item(1).Text) And Len(.Item(2).Text), "_", "") & _
            .Item(2).Text & vbCrLf
      End If
   End With

> Everything works fine and the text file displays both of the fields properly
> when they both have data, but if one of the columns is blank, then nothing
> shows up on the text file.  Why is this happening?  Below is my logic for the
> code, please see below.
Brett Smith - 28 Feb 2006 18:52 GMT
Thank you very much JE McGimpsey, you were very helpful!

> First, since you make an assignment to NandMVariable, it should never be
> empty, so
[quoted text clipped - 29 lines]
> > shows up on the text file.  Why is this happening?  Below is my logic for the
> > code, please see below.
Tom Ogilvy - 28 Feb 2006 17:36 GMT
Try changing

NandMVariable = NVariable + MVariable

to

NandMVariable = NVariable & MVariable

Signature

Regards,
Tom Ogilvy

> I'm trying to do a comparison operator that is being printed on an export
> text file.  What I am trying to do is this.  See below:
[quoted text clipped - 37 lines]
> vbCrLf
>             End If
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.