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 / New Users / June 2007

Tip: Looking for answers? Try searching our database.

Comments in excel 2003

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Klemen25 - 13 Jun 2007 10:27 GMT
Hello!

I get the data from data warehouse.
I than input the data in Excel.

I have a list of accounts in column A.
In column B, C, D... are months from January to December, and then for
each month specific amounts for certain account.
I have to input comments for certain specific amounts (if they are
much higher or lower as to provide explanation for these exceptions).

So I do this for each month- but when I get data for new month, also
new accounts appear.
If they would not- I could just import new data (for all months) and
then copy- paste special- comments, and all comments would be in the
right cell.
But as the new accounts appear, I have problems inputting the comments
from the previous months.
Is there any way to solve this (perhaps if it is possible to tell the
comment- you must always be on March for account 123449)?
Or how would you do this?

Thank you!
Dave Peterson - 13 Jun 2007 13:57 GMT
First, I would think that using a separate cell to hold your comments would make
your live much easier.  You could just use =vlookup() or =index(match()) to
return the text.

Debra Dalgleish has lots of notes on =vlookup() and =index(match()) here:
http://www.contextures.com/xlFunctions02.html  (for =vlookup())
and
http://www.contextures.com/xlFunctions03.html  (for =index(match()))

But...

One of the "features/bugs" of excel is that you can return comments using a user
defined function.

Actually, you could use a UDF to retrieve the value and comment:

Option Explicit
Function VlookupComment(myVal As Variant, myTable As Range, _
                           myColumn As Long, myBoolean As Boolean) As Variant

   Application.Volatile True
   
   Dim res As Variant 'could be an error
   Dim myLookupCell As Range

   With Application.Caller
       If .Comment Is Nothing Then
          'do nothing
       Else
          .Comment.Delete
       End If
   end with
   
   res = Application.Match(myVal, myTable.Columns(1), myBoolean)
   If IsError(res) Then
       VlookupComment = "Not Found"
   Else
       Set myLookupCell = myTable.Columns(myColumn).Cells(1)(res)
       VlookupComment = myLookupCell.Value
       With Application.Caller
           If myLookupCell.Comment Is Nothing Then
               'no comment, do nothing
           Else
               .AddComment Text:=myLookupCell.Comment.Text
           End If
       End With
   End If

End Function

If you're new to macros, you may want to read David McRitchie's intro at:
http://www.mvps.org/dmcritchie/excel/getstarted.htm

Short course:

Open your workbook.
Hit alt-f11 to get to the VBE (where macros/UDF's live)
hit ctrl-R to view the project explorer
Find your workbook.
should look like:   VBAProject (yourfilename.xls)  

right click on the project name
Insert, then Module
You should see the code window pop up on the right hand side

Paste the code in there.

Now go back to excel.
Into a test cell and type:
=VlookupComment(a1, 'sheet2'!a:e, 5, false)

> Hello!
>
[quoted text clipped - 19 lines]
>
> Thank you!

Signature

Dave Peterson


Rate this thread:






 
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.