<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.officezealot.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Steve Hansen : Excel</title><link>http://blogs.officezealot.com/hansen/archive/tags/Excel/default.aspx</link><description>Tags: Excel</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.2)</generator><item><title>Google Docs + Microsoft Excel = poorman's Excel Services (kinda, sorta)</title><link>http://blogs.officezealot.com/hansen/archive/2007/10/03/20564.aspx</link><pubDate>Thu, 04 Oct 2007 01:42:00 GMT</pubDate><guid isPermaLink="false">a446e06f-2cc4-48dd-a534-c024bd1e2687:20564</guid><dc:creator>hansen</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.officezealot.com/hansen/comments/20564.aspx</comments><wfw:commentRss>http://blogs.officezealot.com/hansen/commentrss.aspx?PostID=20564</wfw:commentRss><description>Take one cup Google Docs, one cup Microsoft Excel and add a dash of programming. &lt;A class="" href="http://vstotips.com/2007/10/03/google-docs-microsoft-excel-working-in-harmony/"&gt;Observe&lt;/A&gt;.&lt;img src="http://blogs.officezealot.com/aggbug.aspx?PostID=20564" width="1" height="1"&gt;</description><category domain="http://blogs.officezealot.com/hansen/archive/tags/Excel+Services/default.aspx">Excel Services</category><category domain="http://blogs.officezealot.com/hansen/archive/tags/Excel/default.aspx">Excel</category><category domain="http://blogs.officezealot.com/hansen/archive/tags/Google/default.aspx">Google</category></item><item><title>Excel 2007 Calculation Bug</title><link>http://blogs.officezealot.com/hansen/archive/2007/09/26/20548.aspx</link><pubDate>Wed, 26 Sep 2007 16:35:00 GMT</pubDate><guid isPermaLink="false">a446e06f-2cc4-48dd-a534-c024bd1e2687:20548</guid><dc:creator>hansen</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.officezealot.com/hansen/comments/20548.aspx</comments><wfw:commentRss>http://blogs.officezealot.com/hansen/commentrss.aspx?PostID=20548</wfw:commentRss><description>&lt;P&gt;Question: When does 850 * 77.1&amp;nbsp;not equal&amp;nbsp;65,535? &lt;/P&gt;
&lt;P&gt;Answer: When you're using Excel 2007.&lt;/P&gt;
&lt;P&gt;A bug in Excel 2007 (and Excel Services)&amp;nbsp;is causing issues around calculated values of 65,535 and 65,536. Calculations that evaluate to the values may incorrectly display 100,000 as the result (although internally, Excel stores the value as the correct result). Microsoft is officially calling the bug a "display" bug (see the link to David Gainer below)&amp;nbsp;rather than a calculation bug. To the average end-user, it doesn't really matter what you call it because this boils down to a trust issue. As in, I trust that Excel always shows the correct results of calculations. The "don't use it until after SP1" crowd is collectively saying "I told you so".&lt;/P&gt;
&lt;P&gt;This bug does not affect prior versions of Excel.&lt;/P&gt;
&lt;P&gt;Like &lt;A class="" href="http://smurfonspreadsheets.wordpress.com/2007/09/25/funny-old-few-days/" target=_blank&gt;Simon&lt;/A&gt;, I'm a little surprised this issue hasn't gotten more attention. I thought I'd wake up today and see it on eWeek, Seattle P-I, etc. I guess everyone is still busy playing Halo 3. Anyway, here are some good sources of information on this issue:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Simon Murphy has a few posts in addition to the link earlier, see &lt;A class="" href="http://smurfonspreadsheets.wordpress.com/2007/09/25/excel-2007-calc-bug/" target=_blank&gt;bug announcement&lt;/A&gt;&amp;nbsp;and &lt;A class="" href="http://smurfonspreadsheets.wordpress.com/2007/09/25/excel-2007-calculation-bug-test-code/" target=_blank&gt;bug test code&lt;/A&gt;, &lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://blogs.msdn.com/excel/archive/2007/09/25/calculation-issue-update.aspx" target=_blank&gt;David Gainer&lt;/A&gt; (Microsoft) explains the bug.&lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://it.slashdot.org/it/07/09/24/2339203.shtml" target=_blank&gt;Slashdot&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://groups.google.com/group/microsoft.public.excel/browse_thread/thread/2bcad1a1a4861879/2f8806d5400dfe22?hl=en#2f8806d5400dfe22" target=_blank&gt;Excel Newsgroup&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://blogs.officezealot.com/aggbug.aspx?PostID=20548" width="1" height="1"&gt;</description><category domain="http://blogs.officezealot.com/hansen/archive/tags/Excel/default.aspx">Excel</category></item><item><title>The Excel Publish menu and Excel Services</title><link>http://blogs.officezealot.com/hansen/archive/2007/05/22/20378.aspx</link><pubDate>Tue, 22 May 2007 15:40:00 GMT</pubDate><guid isPermaLink="false">a446e06f-2cc4-48dd-a534-c024bd1e2687:20378</guid><dc:creator>hansen</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.officezealot.com/hansen/comments/20378.aspx</comments><wfw:commentRss>http://blogs.officezealot.com/hansen/commentrss.aspx?PostID=20378</wfw:commentRss><description>&lt;P&gt;I was more than a little bummed yesterday (annoyed is more like it) when I found out why I was missing the Excel Services option on the Publish menu in Excel.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Excel 2007 Enterprise Publish Menu&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG title="Excel 2007 Enterprise Publish Menu" style="WIDTH:315px;HEIGHT:375px;" height=375 alt="Excel 2007 Enterprise Publish Menu" src="http://blogs.officezealot.com/photos/hansen/images/20372/315x375.aspx" width=315&gt;&lt;/P&gt;
&lt;P&gt;Little did I realize that all of the work I’ve been doing to date inside a Virtual PC image used Office Enterprise edition. I didn’t even think twice when I installed Office Professional (as I have for the past 10 years) on a new computer. But sure enough, one of the little nuggets missing from the Professional SKU is the essential (if you’re using Excel Services anyway) Excel Services item on the publish menu. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Excel 2007 Professional Publish Menu&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG title="Excel 2007 Professional Publish Menu" style="WIDTH:337px;HEIGHT:375px;" height=375 alt="Excel 2007 Professional Publish Menu" src="http://blogs.officezealot.com/photos/hansen/images/20373/337x375.aspx" width=337&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;So what’s the big deal with this menu item?&lt;/STRONG&gt;&lt;BR&gt;If you don’t have this menu item, you can still save a workbook to a document library (although it is not entirely intuitive how to do this) and view the workbook in Excel Services. What you miss out on is the Excel Services Options. The Excel Services options allow you to specify which items in a worksheet to publish. You can publish the whole workbook, individual worksheets, named ranges, and charts.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.officezealot.com/photos/hansen/images/20376/640x478.aspx"&gt;&lt;IMG title="Excel Services Options" style="WIDTH:500px;HEIGHT:373px;" height=373 alt="Excel Services Options" src="http://blogs.officezealot.com/photos/hansen/images/20376/500x373.aspx" width=500&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Additionally, you can specify workbook parameters using the Parameters tab. Parameters allow you to provide some interactive capability when viewing the workbook via Excel Services. For example, say you have a sales report and you want to allow people the ability to choose a sales region and a fiscal year. Given these two parameters, the report updates itself automatically. To do this, you name the ranges representing the region and the fiscal year and then use the Parameters tab to add these named ranges as workbook parameters.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.officezealot.com/photos/hansen/images/20377/640x478.aspx"&gt;&lt;IMG title="Excel Services parameter options" style="WIDTH:500px;HEIGHT:373px;" height=373 alt="Excel Services parameter options" src="http://blogs.officezealot.com/photos/hansen/images/20377/500x373.aspx" width=500&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Now, instead viewing a static workbook via a browser (which is cool and useful), people can view the workbook and interact with it (which is cool and useful squared). For example, opening the sales report in Excel Services looks like this (please excuse the simplistic and boring formatting):&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.officezealot.com/photos/hansen/images/20374/original.aspx"&gt;&lt;IMG title="A workbook with parameters in Excel Services" style="WIDTH:500px;HEIGHT:310px;" height=310 alt="A workbook with parameters in Excel Services" src="http://blogs.officezealot.com/photos/hansen/images/20374/500x310.aspx" width=500&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;In the next screen shot, I have entered “South” in the Region parameter and clicked Apply.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.officezealot.com/photos/hansen/images/20375/original.aspx"&gt;&lt;IMG title="A workbook with parameters in Excel Services" style="WIDTH:500px;HEIGHT:310px;" height=310 alt="A workbook with parameters in Excel Services" src="http://blogs.officezealot.com/photos/hansen/images/20375/500x310.aspx" width=500&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Hopefully the corporations out there that have been installing the Professional SKU since Office 97 don’t make the same mistake I did only to find out later that some of the great SharePoint integration that myself and others tout isn’t available in this SKU. Not having the Excel Services item on the publish menu significantly constrains the usefulness of Excel Services from an end-user perspective. &lt;/P&gt;
&lt;P&gt;A comparison of the Office 2007 SKUs is found &lt;A class="" href="http://office.microsoft.com/en-us/suites/FX101635841033.aspx"&gt;here&lt;/A&gt;. The Excel Services option on the Publish menu is considered part of the Integrated Enterprise Content Management functionality.&lt;/P&gt;
&lt;P&gt;As a final thought, I find it interesting that Microsoft is choosing to bundle all of the interesting web related functionality only in its highest priced SKUs while competitors are rapidly building out modest priced entirely web-based Office Suites (granted they have a ways to go). It reminds me of the days when Microsoft was an up and comer against established products only now Microsoft is the established product and no longer the up and comer.&amp;nbsp; If there is one thing Microsoft’s history has shown it’s that the risk to products is from the bottom end of the market, not the top. I’ll reiterate &lt;A class="" href="http://blogs.officezealot.com/hansen/archive/2007/02/01/20119.aspx"&gt;my former plea&lt;/A&gt; – add Excel Services functionality to Office Live and while you’re at it – please add the Excel Services item to the Publish menu of every version of Microsoft Office.&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.officezealot.com/aggbug.aspx?PostID=20378" width="1" height="1"&gt;</description><category domain="http://blogs.officezealot.com/hansen/archive/tags/Excel+Services/default.aspx">Excel Services</category><category domain="http://blogs.officezealot.com/hansen/archive/tags/Excel/default.aspx">Excel</category></item><item><title>VSTO "Orcas" Sales Forecasting Demo at Financial Services Developer Conference</title><link>http://blogs.officezealot.com/hansen/archive/2007/05/01/20309.aspx</link><pubDate>Tue, 01 May 2007 16:33:00 GMT</pubDate><guid isPermaLink="false">a446e06f-2cc4-48dd-a534-c024bd1e2687:20309</guid><dc:creator>hansen</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.officezealot.com/hansen/comments/20309.aspx</comments><wfw:commentRss>http://blogs.officezealot.com/hansen/commentrss.aspx?PostID=20309</wfw:commentRss><description>&lt;P&gt;I spent Thursday, April 26th in New York attending the &lt;A class="" href="http://www.financialdevelopers.com/"&gt;5th Annual Financial Services Developer Conference&lt;/A&gt;. I was on hand to assist with one of the VSTO demonstrations. The demo used an application that&amp;nbsp;&lt;A class="" href="http://www.officezealot.com/"&gt;OZ&lt;/A&gt; developed last year for the &lt;A class="" href="http://www.microsoft.com/presspass/press/2006/mar06/03-21MOSDevComPR.mspx"&gt;Office System Developers Conference&lt;/A&gt;. It is a sales forecasting application that was inspired by an honest to goodness real-world application.&lt;/P&gt;
&lt;P&gt;As I looked through the &lt;A class="" href="http://www.financialdevelopers.com/assets/FSDevConAgenda.doc"&gt;agenda&lt;/A&gt; for this conference, one of the things that struck me was how grandiose many of the topics sounded. For example, one of the sessions is “All Nines. All the Time: Citigroup Apply &amp;amp; Buy Application.” This session discussed achieving five nines reliability. Now, don’t get me wrong, I truly appreciate the amount of engineering and effort required to build mission critical applications. What I’d like to see more of at these types of events, however, is more attention to the fundamentals. That is where the sales forecasting application demo fits in.&lt;/P&gt;
&lt;P&gt;You see, I’d bet this &lt;A class="" href="http://blogs.officezealot.com/hansen/archive/2007/04/05/20218.aspx"&gt;Dell XPS M1710&lt;/A&gt; that I can find the inefficient end-user pattern that I’m about to describe in every organization of significant size. The basic problem is the collection and consolidation of business data – particularly forecasting information. While the situation the demo tackles is sales forecasting, if you abstract one level, you’d find this same pattern everywhere.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For the millions of dollars corporations spend on enterprise software from gigantic ISV’s and the millions more spent on enterprise development, &lt;EM&gt;how come there is still so much low hanging fruit in the enterprise&lt;/EM&gt;?&amp;nbsp;Considering the amount&amp;nbsp;of low hanging fruit that is ripe for collection, I'm continually amazed how quickly some folks can dismiss Office development so quickly. The sales forecasting demo that we built can be built by any Office developer extremely quickly. &lt;/P&gt;
&lt;P&gt;In the sales forecasting scenario, you have sales manager(s) and sales people. The sales people need to forecast their sales over the year. The manager(s) need to review individual sales forecasts and consolidated forecasts. Depending on the manager(s) level in the organization, they may need to see consolidated forecasts at multiple levels of the organization.&lt;/P&gt;
&lt;P&gt;The end-user solution to this problem is to create an Excel workbook and share (via email or a shared-server) it with all of the sales people. The sales people fill out their forecasts and then email it to someone or save it to a prescribed server location.&lt;/P&gt;
&lt;P&gt;Now, some poor soul, usually a financial analyst, has to consolidate all or the workbooks. Usually this is performed by creating an elaborate series of linked workbooks. In order to handle each time period, the file system is used and the series of workbooks are copied into new folders. The end result is a whole bunch of files like the example shown below.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;FIGURE 1: A TYPICAL END-USER SOLUTION TO FILE CONSOLIDATION&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG title="A typical end-user solution to data consolidation" style="WIDTH:540px;HEIGHT:475px;" height=475 alt="A typical end-user solution to data consolidation" src="http://blogs.officezealot.com/photos/hansen/images/20314/original.aspx" width=540&gt;&lt;/P&gt;
&lt;P&gt;I probably don’t need to tell you how time-consuming this process is. Nor do I need to tell you how fragile and error-prone it can be. I know – I used to be a financial analyst. I’ve lived it. We used to refer to this as the equivalent of burger flipping for MBA’s. Given the &lt;A class="" href="http://www.businessweek.com/magazine/content/06_43/b4006005.htm"&gt;price of MBA's today&lt;/A&gt;, this is a valuable problem to solve.&lt;/P&gt;
&lt;P&gt;The generic solution to this problem is to find a way to store all of the data in a database and then provide a way for users to input and modify data appropriately. If we agree that the data should be stored in a central database, then the only problem left to solve is how to allow the end-user to interact with the data. For all practical purposes, the interaction choices are: web-based or smart-client based. The sales forecasting demo&amp;nbsp;takes the smart-client based approach, using the VSTO ServerDocument class to provide both web-based&amp;nbsp;dashboard integration as well as an offline experience.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;FIGURE 2: AN EXCEL&amp;nbsp;SALES FORECASTING APPLICATION DEVELOPED WITH&amp;nbsp;VSTO "ORCAS"&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG title="Using VSTO to tame the forecasting process" style="WIDTH:500px;HEIGHT:359px;" height=359 alt="Using VSTO to tame the forecasting process" src="http://blogs.officezealot.com/photos/hansen/images/20315/500x359.aspx" width=500&gt;&lt;/P&gt;
&lt;P&gt;Figure 2 shows a screen shot of the sales forecasting demo.&amp;nbsp;We originally developed it using VSTO 2005 and targeting Excel 2003. &lt;A class="" href="http://blogs.officezealot.com/rbedell/"&gt;Ryan&lt;/A&gt; migrated it to VSTO "Orcas" and Excel 2007 in preparation for the Financial Services Developer Conference last week. This demo really deserves an entire blog post or article to explain all of the capabilities we built into it - being inspired by a "real-world" application, it is fairly comprehensive. Basically, it consists of two worksheets a dashboard and the forecast. The dashboard is shown in the screenshot. The forecast worksheet contains the monthly details.&lt;/P&gt;
&lt;P&gt;The demo app uses role based security. Sales managers can navigate throughout the organizational hierarchy displayed in the task pane. As you select items in the org hierarchy, the dashboard and forecast worksheets update accordingly. A sales person can only view/edit their own data - the hierarchy is disabled.&lt;/P&gt;
&lt;P&gt;Pretty standard fare technically, but&amp;nbsp;extremely valuable&amp;nbsp;versus the ad-hoc scenario that is abundant in corporate America today. Anyone feel like picking some fruit?&lt;/P&gt;&lt;img src="http://blogs.officezealot.com/aggbug.aspx?PostID=20309" width="1" height="1"&gt;</description><category domain="http://blogs.officezealot.com/hansen/archive/tags/Conferences/default.aspx">Conferences</category><category domain="http://blogs.officezealot.com/hansen/archive/tags/Excel/default.aspx">Excel</category><category domain="http://blogs.officezealot.com/hansen/archive/tags/VSTO/default.aspx">VSTO</category></item><item><title>Excel Find method example using C#/VSTO</title><link>http://blogs.officezealot.com/hansen/archive/2007/03/29/20211.aspx</link><pubDate>Thu, 29 Mar 2007 16:14:00 GMT</pubDate><guid isPermaLink="false">a446e06f-2cc4-48dd-a534-c024bd1e2687:20211</guid><dc:creator>hansen</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.officezealot.com/hansen/comments/20211.aspx</comments><wfw:commentRss>http://blogs.officezealot.com/hansen/commentrss.aspx?PostID=20211</wfw:commentRss><description>&lt;P&gt;I've always found Excel's Find/FindNext methods awkward to use. It just seemed to require so many lines of code versus other common operations. I guess I've always wanted a simple FindAll() method that would find everything at once and give me a range containing all of the cells that met my search condition.&lt;/P&gt;
&lt;P&gt;Anyway, the purpose of this post is just to share a basic C# example of how to use Find and FindNext to search through all the cells on a worksheet.&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;private void FindExample(Excel.Worksheet ws, string sFindMe)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Excel.Range rgFound;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string sFirstFoundAddress;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Find's parameters are "sticky". If you don't specify them&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // they'll default to the last used values - including parameters&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // set via Excel's user interface&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rgFound = ws.Cells.Find(sFindMe,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ws.Cells[1, 1],&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Excel.XlFindLookIn.xlValues,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Excel.XlLookAt.xlPart,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; missing,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Excel.XlSearchDirection.xlNext,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; false,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; missing,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; missing);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // If Find doesn't find anything, rgFound will be null&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(rgFound != null)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Save the address of the first found item - &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // it will be used in a loop terminating condition.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sFirstFoundAddress = rgFound.get_Address(&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; true, true, Excel.XlReferenceStyle.xlA1, missing, missing);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show("Found match at cell " + sFirstFoundAddress);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Continue finding subsequent items using FindNext&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rgFound = ws.Cells.FindNext(rgFound);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string sAddress = rgFound.get_Address(&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; true, true, Excel.XlReferenceStyle.xlA1, missing, missing);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Start a loop that calls FindNext until&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // the first found cell is found again&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (!sAddress.Equals(sFirstFoundAddress))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show("Found match at cell " + sAddress);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rgFound = ws.Cells.FindNext(rgFound);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sAddress = rgFound.get_Address(&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; true, true, Excel.XlReferenceStyle.xlA1, missing, missing);&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show("The worksheet has been searched.");&lt;BR&gt;}&lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://blogs.officezealot.com/aggbug.aspx?PostID=20211" width="1" height="1"&gt;</description><category domain="http://blogs.officezealot.com/hansen/archive/tags/Excel/default.aspx">Excel</category><category domain="http://blogs.officezealot.com/hansen/archive/tags/VSTO/default.aspx">VSTO</category></item></channel></rss>