<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-10736658</id><updated>2008-07-07T14:20:04.602-04:00</updated><title type='text'>My Excel and VBA Blog</title><link rel='alternate' type='text/html' href='http://www.nandeshwar.info/projects/xlblog/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default?start-index=26&amp;max-results=25'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://nandeshwar.info/projects/xlblog/atom.xml'/><author><name>Ashutosh</name><uri>http://www.blogger.com/profile/10968386226758376750</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>55</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-10736658.post-7145415141853955784</id><published>2007-10-23T09:03:00.000-04:00</published><updated>2007-10-23T09:10:57.650-04:00</updated><title type='text'>Excel Training Handout</title><content type='html'>Recently, I conducted a training session for Ohio Association for Institutional Research and Planning (&lt;a href="http://www.oairp.org/"&gt;OAIRP&lt;/a&gt;). Here are the files that I used for the training:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.nandeshwar.info/projects/xlblog/files/handout.pdf"&gt;handout.pdf&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.nandeshwar.info/projects/xlblog/files/Excercise.xls"&gt;Excercise.xls&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.nandeshwar.info/projects/xlblog/files/Formulae.xls"&gt;Formulae.xls&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;</content><link rel='alternate' type='text/html' href='http://www.nandeshwar.info/projects/xlblog/2007/10/excel-training-handout.html' title='Excel Training Handout'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10736658&amp;postID=7145415141853955784' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://nandeshwar.info/projects/xlblog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/7145415141853955784'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/7145415141853955784'/><author><name>Ashutosh</name><uri>http://www.blogger.com/profile/10968386226758376750</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10736658.post-7708766663421624237</id><published>2007-09-17T09:21:00.000-04:00</published><updated>2007-09-17T09:25:21.376-04:00</updated><title type='text'>Convert Text to Uppercase</title><content type='html'>If you want to convert the text to uppercase, use the following code; however, I recommend downloading &lt;a href="http://www.asap-utilities.com/"&gt;ASAP Utilities&lt;/a&gt;, it has many functionalities, including text conversion. It doesn't offer source code though. &lt;br /&gt;&lt;br /&gt;Here's my code for uppercase conversion:&lt;br /&gt;(If you want to convert your text to lowercase, replace Ucase with Lcase function in the code)&lt;br /&gt;&lt;div id="code"&gt;&lt;font face=Courier New&gt;&lt;SPAN style="color:#007F00"&gt;'Will convert selected range to Upper case, using array&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt; Conv2UCase()&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;On&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Error&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;GoTo&lt;/SPAN&gt; Conv2UCase_Error&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; vDataArr &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Variant&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; lUpperBndRow &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Long&lt;/SPAN&gt;, lUpperBndCol &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Long&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; lRow &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Long&lt;/SPAN&gt;, lCol &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Long&lt;/SPAN&gt;&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'store selected values in an array&lt;/SPAN&gt;&lt;br&gt;vDataArr = Selection&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'get the upper bound of rows&lt;/SPAN&gt;&lt;br&gt;lUpperBndRow = &lt;SPAN style="color:#00007F"&gt;UBound&lt;/SPAN&gt;(vDataArr, 1)&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'get the upper bound of cols&lt;/SPAN&gt;&lt;br&gt;lUpperBndCol = &lt;SPAN style="color:#00007F"&gt;UBound&lt;/SPAN&gt;(vDataArr, 2)&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'Start a loop to go through all the elements of the array&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;For&lt;/SPAN&gt; lRow = 1 &lt;SPAN style="color:#00007F"&gt;To&lt;/SPAN&gt; lUpperBndRow&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;For&lt;/SPAN&gt; lCol = 1 &lt;SPAN style="color:#00007F"&gt;To&lt;/SPAN&gt; lUpperBndCol&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#007F00"&gt;'Check if the value is text, if not don't convert&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;If&lt;/SPAN&gt; WorksheetFunction.IsText(vDataArr(lRow, lCol)) &lt;SPAN style="color:#00007F"&gt;Then&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#007F00"&gt;'Convert values to upper case&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;vDataArr(lRow, lCol) = UCase(vDataArr(lRow, lCol))&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;If&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;Next&lt;/SPAN&gt; lCol&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Next&lt;/SPAN&gt; lRow&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'Return the converted values to the range&lt;/SPAN&gt;&lt;br&gt;Selection = vDataArr&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Exit&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt;&lt;br&gt;&lt;br&gt;Conv2UCase_Error:&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;MsgBox "Error " &amp; Err.Number &amp; " (" &amp; Err.Description &amp; ") in Sub:Conv2UCase"&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.nandeshwar.info/projects/xlblog/2007/09/convert-text-to-uppercase.html' title='Convert Text to Uppercase'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10736658&amp;postID=7708766663421624237' title='2 Comments'/><link rel='replies' type='application/atom+xml' href='http://nandeshwar.info/projects/xlblog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/7708766663421624237'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/7708766663421624237'/><author><name>Ashutosh</name><uri>http://www.blogger.com/profile/10968386226758376750</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10736658.post-2456146528109391607</id><published>2007-09-06T08:56:00.000-04:00</published><updated>2007-09-12T14:14:45.564-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><title type='text'>Excel Books</title><content type='html'>&lt;style type="text/css"&gt;.nobrtable br { display: none }&lt;/style&gt;&lt;br /&gt;&lt;div class="nobrtable"&gt;&lt;br /&gt;&lt;table border="1" width="100%"&gt;&lt;br /&gt;  &lt;tbody&gt;&lt;tr&gt;&lt;br /&gt;     &lt;td&gt;&lt;div align="center"&gt;&lt;span style="font-weight: bold;"&gt;Books on my shelf:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;br /&gt;    &lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;  &lt;/tr&gt;&lt;br /&gt;  &lt;tr&gt;&lt;br /&gt;    &lt;td width="80%"&gt;&lt;span style="font-weight: bold;"&gt;Professional Excel Development by Stephen Bullen, Rob Bovey&lt;br&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is by far the most authoritative book on Excel development from Add-ins to APIs. A word of caution though, it is not for the beginners. &lt;/td&gt;&lt;br /&gt;    &lt;td width="20%"&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?t=myexanvbbl-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=0321262506&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;  &lt;/tr&gt;&lt;br /&gt;  &lt;tr&gt;&lt;br /&gt;    &lt;td width="80%"&gt;&lt;span style="font-weight: bold;"&gt;Excel Advanced Report Development by Timothy Zapawa&lt;br&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ever wondered on using Excel as a report development tool? This might be an answer to it; however, my problem with this book is that it focuses too much on pivottables, and because of that it doesn’t do justification to the name of the book. At any rate, this is very good book to exploit pivottable to its limits.&lt;/td&gt;&lt;br /&gt;    &lt;td width="20%"&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?t=myexanvbbl-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=0764588117&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;  &lt;/tr&gt;&lt;br /&gt;  &lt;tr&gt;&lt;br /&gt;    &lt;td width="80%"&gt;&lt;span style="font-weight: bold;"&gt;Excel 2007 Power Programming with VBA by John Walkenbach &lt;br&gt;&lt;/span&gt;&lt;br /&gt;Of course, it cannot happen that you talk about Excel books and don’t mention &lt;a href="http://www.j-walk.com/"&gt;Mr. Spreadsheet&lt;/a&gt; himself. I am his fan on personal and professional level. On personal level, I love his &lt;a href="http://www.j-walkblog.com/"&gt;blog&lt;/a&gt;, and on professional level, I like his lucid language in his books. I recommend reading his books and blog both.&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;    &lt;td width="20%"&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?t=myexanvbbl-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=0470044012&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;/td&gt;&lt;br /&gt;  &lt;/tr&gt;&lt;br /&gt;  &lt;tr&gt;&lt;br /&gt;    &lt;td width="80%"&gt;&lt;span style="font-weight: bold;"&gt;Excel 2003 Formulas by John Walkenbach&lt;br&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; You thought you knew formulas? Just read this book and you’ll realize, which I do almost every day, that there just so much about Excel that we don’t know. John uses simple language, and introduces the readers from basic to advanced formulas. How advance you might ask, well, here is an &lt;a href="http://j-walkblog.com/old/2004/12/18/"&gt;example&lt;/a&gt;, which uses a formula similar to this:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.nandeshwar.info/projects/xlblog/uploaded_images/Jwalkcalender-728257.jpg"&gt;&lt;img style="cursor: pointer;" src="http://www.nandeshwar.info/projects/xlblog/uploaded_images/Jwalkcalender-728254.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;/td&gt;&lt;br /&gt;    &lt;td width="20%"&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?t=myexanvbbl-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=0764540734&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;  &lt;/tr&gt;&lt;br /&gt;  &lt;tr&gt;&lt;br /&gt;    &lt;td width="80%"&gt;&lt;span style="font-weight: bold;"&gt;Excel 2007 Formulas by John Walkenbach&lt;br&gt;&lt;/span&gt;&lt;/td&gt;&lt;br /&gt;    &lt;td width="20%"&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?t=myexanvbbl-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=0470044020&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;  &lt;/tr&gt;&lt;br /&gt;  &lt;tr&gt;&lt;br /&gt;   &lt;td&gt;&lt;div align="center"&gt;&lt;span style="font-weight: bold;"&gt;Books that I have Read:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;br /&gt;    &lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;  &lt;/tr&gt;&lt;br /&gt;  &lt;tr&gt;&lt;br /&gt;    &lt;td width="80%"&gt;&lt;span style="font-weight: bold;"&gt;Data Analysis and Decision Making with Microsoft Excel by S. Christian Albright&lt;br&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I borrowed this book from the library. It is a very good for beginners.&lt;/td&gt;&lt;br /&gt;    &lt;td width="20%"&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?t=myexanvbbl-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=053438367X&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;/td&gt;&lt;br /&gt;  &lt;/tr&gt;&lt;br /&gt;  &lt;tr&gt;&lt;br /&gt;    &lt;td width="80%"&gt;&lt;span style="font-weight: bold;"&gt;Excel 2003 Power Programming with VBA by John Walkenbach&lt;br&gt;&lt;/span&gt;&lt;/td&gt;&lt;br /&gt;    &lt;td width="20%"&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?t=myexanvbbl-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=0764540726&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;  &lt;/tr&gt;&lt;br /&gt;  &lt;tr&gt;&lt;br /&gt;    &lt;td width="80%"&gt;&lt;span style="font-weight: bold;"&gt;Integrating Excel and Access by Michael Schmalz&lt;br&gt;&lt;/span&gt;&lt;br /&gt;I borrowed this book from the library too. Excellent reference on developing applications using Access, Excel, and VBA.&lt;/td&gt;&lt;br /&gt;    &lt;td width="20%"&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?t=myexanvbbl-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=0596009739&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;/td&gt;&lt;br /&gt;  &lt;/tr&gt;&lt;br /&gt;   &lt;tr&gt;&lt;br /&gt;    &lt;td width="80%"&gt;&lt;span style="font-weight: bold;"&gt;Mr Excel ON EXCEL by Bill Jelen&lt;br&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Probably, this is my first book, which I read on Excel by Bill Jelen aka Mr. Excel. Fantastic book. If you have started knowing Excel just now, obtain a copy of this book right away. This is the right start for beginners. It uses very simple and clear language, and Bill provides great examples to make the learning useful.&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;    &lt;td width="20%"&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?t=myexanvbbl-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=0972425837&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;  &lt;/tr&gt;&lt;br /&gt;  &lt;tr&gt;&lt;br /&gt;    &lt;td width="80%"&gt;&lt;span style="font-weight: bold;"&gt;Guerilla Data Analysis Using Microsoft Excel by Bill Jelen&lt;br&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I had an e-version of this book, but for some reason its not working anymore. Anyway, I had chewed this book a lot. Again, it’s a great book for starters, especially, in data crunching.&lt;/td&gt;&lt;br /&gt;    &lt;td width="20%"&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?t=myexanvbbl-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=0972425802&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;/td&gt;&lt;br /&gt;  &lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.nandeshwar.info/projects/xlblog/2007/09/excel-books.html' title='Excel Books'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10736658&amp;postID=2456146528109391607' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://nandeshwar.info/projects/xlblog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/2456146528109391607'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/2456146528109391607'/><author><name>Ashutosh</name><uri>http://www.blogger.com/profile/10968386226758376750</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10736658.post-6690173608774652562</id><published>2007-08-16T10:19:00.000-04:00</published><updated>2007-08-16T10:21:09.440-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='String Operations'/><title type='text'>A function to reverse a string</title><content type='html'>Very simple, uses the VBA function StrReverse to reverse the input string.&lt;br /&gt;&lt;div id="code"&gt;&lt;font face=Courier New&gt;&lt;SPAN style="color:#007F00"&gt;'A function to reverse a string provided as input&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'For example, the string "abcd" will become "dcba"&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'Uses the VBA function StrReverse&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Public&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Function&lt;/SPAN&gt; ReverseString(sInputString &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; String) &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; String&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;On&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Error&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;GoTo&lt;/SPAN&gt; ReverseString_Error&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;br&gt;ReverseString = StrReverse(sInputString)&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;Exit&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Function&lt;/SPAN&gt;&lt;br&gt;&lt;br&gt;ReverseString_Error:&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;ReverseString = "#ERROR#"&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Function&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.nandeshwar.info/projects/xlblog/2007/08/function-to-reverse-string.html' title='A function to reverse a string'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10736658&amp;postID=6690173608774652562' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://nandeshwar.info/projects/xlblog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/6690173608774652562'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/6690173608774652562'/><author><name>Ashutosh</name><uri>http://www.blogger.com/profile/10968386226758376750</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10736658.post-1218760024629970309</id><published>2007-07-24T12:24:00.000-04:00</published><updated>2007-07-30T16:55:57.896-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='String Operations'/><title type='text'>Concatenate function</title><content type='html'>Oh, man, I can't tell how useful that &lt;a href="http://www.nandeshwar.info/projects/xlblog/2007/06/range-concatenation-with-character.html"&gt;concatenate function&lt;/a&gt; is.&lt;br /&gt;&lt;br /&gt;One repetitive use I found is to create OR/AND conditions for Access queries. I copy-paste the field values of a column from Access, do some filtering and my conditions are ready. Then I use this concatfunc to create a string to use in my Access query.&lt;br /&gt;&lt;br /&gt;For example, look at this print screen:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.nandeshwar.info/projects/xlblog/uploaded_images/concatfuncex-714057.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.nandeshwar.info/projects/xlblog/uploaded_images/concatfuncex-714053.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The Range A1:A4 houses the string condition I want to use in my Access query to restrict the fruits from my data. In cell B1 I have the formula&lt;br /&gt;&lt;div id="code"&gt;=PERSONAL.XLS!concatfunc(A1:A4,CHAR(34) &amp; " or " &amp;amp; CHAR(34))&lt;/div&gt;, and the return string from this function is listed in cell B1.&lt;br /&gt;&lt;br /&gt;Now, all you have to do is copy and paste this in Access criteria and put a quotation mark at the start and at the end of this string.&lt;br /&gt;&lt;br /&gt;I have found one more use of this when I want to store some values in an Array, using the &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbenlr98/html/vafctarray.asp"&gt;Array function in VBA&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;One more print screen:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.nandeshwar.info/projects/xlblog/uploaded_images/concatfuncex2-714067.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.nandeshwar.info/projects/xlblog/uploaded_images/concatfuncex2-714065.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In this example, I insert a comma (CHAR(44) instead of string OR, and this function returns a string that I can use in VBA to store these values in an array using Array function, after adding a quotation mark, of course, at the start and at the end.</content><link rel='alternate' type='text/html' href='http://www.nandeshwar.info/projects/xlblog/2007/07/concatenate-function.html' title='Concatenate function'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10736658&amp;postID=1218760024629970309' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://nandeshwar.info/projects/xlblog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/1218760024629970309'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/1218760024629970309'/><author><name>Ashutosh</name><uri>http://www.blogger.com/profile/10968386226758376750</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10736658.post-1158316800021503263</id><published>2007-07-24T11:48:00.000-04:00</published><updated>2007-07-24T12:20:32.452-04:00</updated><title type='text'>Print Structures of dbf files in separate workbooks</title><content type='html'>Recently, I had the need of printing the data structures of many dbf files. A google search reveled the DBF.COM file that would output dbf file structures, number of records, file name, date of last update, etc. &lt;br /&gt;&lt;br /&gt;Download this file here: &lt;a href="http://www.nandeshwar.info/projects/xlblog/files/DBF.COM"&gt;files/DBF.COM&lt;/a&gt; (Caution: I downloaded this file from the internet, and I do not make any warranty of it being spyware or malicious ware free. Use it on your own risk.) &lt;br /&gt;&lt;br /&gt;To use this file go to Start&gt;Run&gt;cmd and in DOS type: &lt;br /&gt;&lt;div id="code"&gt;cd C:/&lt;span style="font-style:italic;"&gt;&lt;your_directory&gt;&lt;/span&gt;&lt;br&gt;&lt;br /&gt;dbf.com &gt; myfilestru.txt &lt;/div&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Note: cd is used to change the current directory&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here's a print screen:&lt;br /&gt;&lt;img src="http://www.nandeshwar.info/projects/xlblog/uploaded_images/doscommand-764218.JPG" border="0" alt="" /&gt;&lt;br&gt;&lt;br /&gt;&lt;br /&gt;This will create a file myfilestru.txt in the same directory where your dbf files are residing. This text file will look like this:&lt;br /&gt;&lt;img src="http://www.nandeshwar.info/projects/xlblog/uploaded_images/filestruct-745759.JPG" border="0" alt="" /&gt;&lt;br&gt;&lt;br /&gt;&lt;br /&gt;Now, that we have a text file all the file structures, we need to create separate workbooks for each dbf file. To do that open this text file in Excel, press Alt + F11 to view the VBA window, double-click the sheet name, and paste this code. After that run this code, and you should have separate workbooks for each dbf file.&lt;br /&gt;&lt;br /&gt;&lt;div id="code"&gt;&lt;font face=Courier New&gt;&lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt; FormatThisFile()&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'Define some variables&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; iLastRow &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Integer&lt;/SPAN&gt;, i &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Integer&lt;/SPAN&gt;, sWrkbkNm &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;String&lt;/SPAN&gt;, sNewWrkbkNm &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;String&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; iPrevLastRow &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Integer&lt;/SPAN&gt;, iFirstRow &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Integer&lt;/SPAN&gt;, iNewWrkbkRow &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Integer&lt;/SPAN&gt;&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;On&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Error&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;GoTo&lt;/SPAN&gt; FormatThisFile_Error&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'Turn off the screen update to run the macro faster&lt;/SPAN&gt;&lt;br&gt;Application.ScreenUpdating = &lt;SPAN style="color:#00007F"&gt;False&lt;/SPAN&gt;&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'Refer to the current workbook and sheet1&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;With&lt;/SPAN&gt; ThisWorkbook.Sheets(1)&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#007F00"&gt;'get the last row number&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;iLastRow = .Range("A65536").End(xlUp).Row&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;i = 1&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;Do&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;While&lt;/SPAN&gt; i &lt; iLastRow&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#007F00"&gt;'search for string "Structure for"&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;If&lt;/SPAN&gt; InStr(1, .Range("A" &amp; i), "Structure for") &gt; 0 &lt;SPAN style="color:#00007F"&gt;Then&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#007F00"&gt;'if found then store the file name&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;sWrkbkNm = Trim(Right(.Range("A" &amp; i), Len(.Range("A" &amp; i)) - Application.WorksheetFunction.Find(":", .Range("A" &amp; i))))&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;sWrkbkNm = Left(sWrkbkNm, Len(sWrkbkNm) - 4)&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;iFirstRow = i&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#007F00"&gt;'search for string "** Total **"&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;ElseIf&lt;/SPAN&gt; InStr(1, .Range("A" &amp; i), "** Total **") &gt; 0 &lt;SPAN style="color:#00007F"&gt;Then&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;iPrevLastRow = i&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#007F00"&gt;'add a workbook&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Workbooks.Add&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#007F00"&gt;'save it&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;ActiveWorkbook.SaveAs ThisWorkbook.Path &amp; "\" &amp; sWrkbkNm&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;sNewWrkbkNm = sWrkbkNm &amp; ".xls"&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#007F00"&gt;'with this new workbook do copy-paste&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;With&lt;/SPAN&gt; Workbooks(sNewWrkbkNm)&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;ThisWorkbook.Sheets(1).Range("A" &amp; iFirstRow &amp; ":" &amp; "A" &amp; iPrevLastRow).Copy Destination:= _&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;.Sheets(1).Range("A1")&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;iNewWrkbkRow = .Sheets(1).Range("A65536").End(xlUp).Row&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;.Sheets(1).Range("A4:A" &amp; iNewWrkbkRow).TextToColumns Destination:= _&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;.Sheets(1).Range("A4"), DataType:=xlDelimited, Space:=&lt;SPAN style="color:#00007F"&gt;True&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;.Sheets(1).Range("A5:A" &amp; iNewWrkbkRow - 1).Delete Shift:=xlToLeft&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;.Sheets(1).Columns("A:IV").EntireColumn.AutoFit&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;.Sheets(1).Columns("A:IV").WrapText = &lt;SPAN style="color:#00007F"&gt;False&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#007F00"&gt;'save and close this workbook&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;.Save&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;.Close&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;With&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;If&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;i = i + 1&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;Loop&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;MsgBox "Done"&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;With&lt;/SPAN&gt;&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;On&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Error&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;GoTo&lt;/SPAN&gt; 0&lt;br&gt;SmoothExit_FormatThisFile:&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Application.ScreenUpdating = &lt;SPAN style="color:#00007F"&gt;True&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;Exit&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt;&lt;br&gt;&lt;br&gt;FormatThisFile_Error:&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;MsgBox "Error " &amp; Err.Number &amp; " (" &amp; Err.Description &amp; ") in procedure FormatThisFile"&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;Resume&lt;/SPAN&gt; SmoothExit_FormatThisFile&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.nandeshwar.info/projects/xlblog/2007/07/print-structures-of-dbf-files-in.html' title='Print Structures of dbf files in separate workbooks'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10736658&amp;postID=1158316800021503263' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://nandeshwar.info/projects/xlblog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/1158316800021503263'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/1158316800021503263'/><author><name>Ashutosh</name><uri>http://www.blogger.com/profile/10968386226758376750</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10736658.post-836416012604417132</id><published>2007-07-18T16:37:00.001-04:00</published><updated>2007-07-30T16:54:52.379-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Access'/><title type='text'>Access VBA: Convert Access tables to arff format</title><content type='html'>&lt;a href="http://www.cs.waikato.ac.nz/ml/weka/"&gt;Weka&lt;/a&gt;, an open source data mining software, uses &lt;a href="http://www.cs.waikato.ac.nz/~ml/weka/arff.html"&gt;arff input data format&lt;/a&gt;. You can use this code to convert any Access table to arff format. Download the Access database with code: &lt;a href="http://www.nandeshwar.info/projects/xlblog/files/Convert2Arff.mdb"&gt;Convert2Arff.mdb&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This can very well be designed using forms, but this should get one started. Use Alt + F11 to see the code, then execute procedure ConvertTbl2Arff to convert a table. &lt;br /&gt;&lt;br /&gt;Some highlights of this procedure&lt;br /&gt;   - Takes care of spaces in Attribute name and data values&lt;br /&gt;   - Finds unique values of nominal variables&lt;br /&gt;   - Assigns equivalent ARFF datatype&lt;br /&gt;   - Replaces missing values with question marks</content><link rel='alternate' type='text/html' href='http://www.nandeshwar.info/projects/xlblog/2007/07/access-vba-convert-access-tables-to.html' title='Access VBA: Convert Access tables to arff format'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10736658&amp;postID=836416012604417132' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://nandeshwar.info/projects/xlblog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/836416012604417132'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/836416012604417132'/><author><name>Ashutosh</name><uri>http://www.blogger.com/profile/10968386226758376750</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10736658.post-9063128187998958743</id><published>2007-07-18T16:28:00.000-04:00</published><updated>2007-07-30T16:54:52.380-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Access'/><title type='text'>Access VBA: Export Access tables using ODBC</title><content type='html'>If you want to export Access tables using ODBC/DSN connections, use the following code. This procedure uses the File DSN and ODBC connection to export Access tables using DAO object TableDef.&lt;br /&gt;&lt;br /&gt;&lt;div id="code"&gt;&lt;font face=Courier New&gt;&lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt; ExportTbls()&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; sTblNm &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;String&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; sTypExprt &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;String&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; sCnxnStr&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;String&lt;/SPAN&gt;, vStTime &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Variant&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; db &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; Database, tbldef &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; DAO.TableDef&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;On&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Error&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;GoTo&lt;/SPAN&gt; ExportTbls_Error&lt;br&gt;&lt;br&gt;sTypExprt = "ODBC Database" &lt;SPAN style="color:#007F00"&gt;'Export Type&lt;/SPAN&gt;&lt;br&gt;sCnxnStr = "ODBC;DSN=DSNName;UID=userID;PWD=password" &lt;SPAN style="color:#007F00"&gt;'Create the connection string&lt;/SPAN&gt;&lt;br&gt;&lt;br&gt;vStTime = Timer&lt;br&gt;Application.Echo &lt;SPAN style="color:#00007F"&gt;False&lt;/SPAN&gt;, "Visual Basic code is executing."&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Set&lt;/SPAN&gt; db = CurrentDb()&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'need a reference to Microsoft DAO 3.x library&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;For&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Each&lt;/SPAN&gt; tbldef &lt;SPAN style="color:#00007F"&gt;In&lt;/SPAN&gt; db.TableDefs&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#007F00"&gt;'Don't export System and temporary tables&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;If&lt;/SPAN&gt; Left(tbldef.Name, 4) &lt;&gt; "MSys" And Left(tbldef.Name, 4) &lt;&gt; "~TMP" &lt;SPAN style="color:#00007F"&gt;Then&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#007F00"&gt;'Debug.Print tbldef.Name&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;sTblNm = tbldef.Name&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;DoCmd.TransferDatabase acExport, sTypExprt, sCnxnStr, acTable, sTblNm, sTblNm&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;If&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Next&lt;/SPAN&gt; tbldef&lt;br&gt;&lt;br&gt;MsgBox "Done! Time taken=" &amp; Timer - vStTime&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;On&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Error&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;GoTo&lt;/SPAN&gt; 0&lt;br&gt;SmoothExit_ExportTbls:&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;Set&lt;/SPAN&gt; db = &lt;SPAN style="color:#00007F"&gt;Nothing&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Application.Echo &lt;SPAN style="color:#00007F"&gt;True&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;Exit&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt;&lt;br&gt;&lt;br&gt;ExportTbls_Error:&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;MsgBox "Error " &amp; Err.Number &amp; " (" &amp; Err.Description &amp; ") in procedure ExportTblsODST"&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;Resume&lt;/SPAN&gt; SmoothExit_ExportTbls&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.nandeshwar.info/projects/xlblog/2007/07/access-vba-export-access-tables-using.html' title='Access VBA: Export Access tables using ODBC'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10736658&amp;postID=9063128187998958743' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://nandeshwar.info/projects/xlblog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/9063128187998958743'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/9063128187998958743'/><author><name>Ashutosh</name><uri>http://www.blogger.com/profile/10968386226758376750</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10736658.post-1131577033902373422</id><published>2007-07-18T16:21:00.000-04:00</published><updated>2007-07-30T16:54:52.380-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Access'/><title type='text'>Access VBA: Delete tables from Access database</title><content type='html'>If you want to delete all or some of the tables from your Access database, you can use this DAO approach. You would need a reference to Microsoft DAO 3.x object library. As shown in the example, you can use an array to store the table names, which you want to keep or delete.&lt;br /&gt;&lt;br /&gt;&lt;div id="code"&gt;&lt;font face=Courier New&gt;&lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt; DelteTbls()&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; sTblNm &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;String&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; db &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; Database, tbldef &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; DAO.TableDef&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; i &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Integer&lt;/SPAN&gt;, Arr &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Variant&lt;/SPAN&gt;&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;On&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Error&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;GoTo&lt;/SPAN&gt; DelteTbls_Error&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'You can use an array if you want to delete or not delete specific tables&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'Arr = Array("Table1","Table2","Table3")&lt;/SPAN&gt;&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Set&lt;/SPAN&gt; db = CurrentDb() &lt;SPAN style="color:#007F00"&gt;'Set the database object&lt;/SPAN&gt;&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'Set the warnings off to suppress messages&lt;/SPAN&gt;&lt;br&gt;DoCmd.SetWarnings &lt;SPAN style="color:#00007F"&gt;False&lt;/SPAN&gt;&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'For i = 0 To UBound(Arr)&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;For&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Each&lt;/SPAN&gt; tbldef &lt;SPAN style="color:#00007F"&gt;In&lt;/SPAN&gt; db.TableDefs&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#007F00"&gt;'here you can use equal to or not equal to delete or keep specific tables&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#007F00"&gt;'If Left(tbldef.Name, 4) = Arr(i) Then&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#007F00"&gt;'Don't delete System or temporary tables&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;If&lt;/SPAN&gt; Left(tbldef.Name, 4) &lt;&gt; "MSys" And Left(tbldef.Name, 1) &lt;&gt; "~" &lt;SPAN style="color:#00007F"&gt;Then&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Debug.Print tbldef.Name&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;sTblNm = tbldef.Name&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#007F00"&gt;'Delete table&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;DoCmd.DeleteObject acTable, sTblNm&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;If&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;Next&lt;/SPAN&gt; tbldef&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'Next i&lt;/SPAN&gt;&lt;br&gt;&lt;br&gt;MsgBox "Done!"&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;On&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Error&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;GoTo&lt;/SPAN&gt; 0&lt;br&gt;&lt;br&gt;SmoothExit_DelteTbls:&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;Set&lt;/SPAN&gt; db = &lt;SPAN style="color:#00007F"&gt;Nothing&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;DoCmd.SetWarnings &lt;SPAN style="color:#00007F"&gt;True&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;Exit&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt;&lt;br&gt;&lt;br&gt;DelteTbls_Error:&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;MsgBox "Error " &amp; Err.Number &amp; " (" &amp; Err.Description &amp; ") in procedure DelteTbls"&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;Resume&lt;/SPAN&gt; SmoothExit_DelteTbls&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt;&lt;br&gt;&lt;/FONT&gt;&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.nandeshwar.info/projects/xlblog/2007/07/access-vba-delete-tables-from-access.html' title='Access VBA: Delete tables from Access database'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10736658&amp;postID=1131577033902373422' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://nandeshwar.info/projects/xlblog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/1131577033902373422'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/1131577033902373422'/><author><name>Ashutosh</name><uri>http://www.blogger.com/profile/10968386226758376750</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10736658.post-7092187894431765758</id><published>2007-07-18T16:19:00.001-04:00</published><updated>2007-07-30T16:54:52.381-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Access'/><title type='text'>Access VBA: Link all Dbase files from a folder</title><content type='html'>If you would like to link all Dbase files, any linkable file for that matter, in MS Access, use the following code. I read somewhere that refreshing the links is slower than deleting and creating new links.&lt;br /&gt;&lt;br /&gt;&lt;div id="code"&gt;&lt;font face=Courier New&gt;&lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt; LinkAllTblsinDir()&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; sTblNm &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;String&lt;/SPAN&gt;, sPath &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;String&lt;/SPAN&gt;, sFileNm &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;String&lt;/SPAN&gt;&lt;br&gt;sPath = "C:\DW\"&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'Turn of the Echo to avoid window repaint/refresh&lt;/SPAN&gt;&lt;br&gt;Application.Echo &lt;SPAN style="color:#00007F"&gt;False&lt;/SPAN&gt;&lt;br&gt;&lt;br&gt;sFileNm = Dir(sPath, vbNormal)&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Do&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;While&lt;/SPAN&gt; sFileNm &lt;&gt; ""&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;If&lt;/SPAN&gt; Right(sFileNm, 3) = "dbf" &lt;SPAN style="color:#00007F"&gt;Then&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;sTblNm = Left(sFileNm, Len(sFileNm) - 4) &lt;SPAN style="color:#007F00"&gt;'Extract the file name&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#007F00"&gt;'Use the TransferDatabase option to link the tables from the specified directory&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#007F00"&gt;'to your current Access DB&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;DoCmd.TransferDatabase acLink, "dBase III", sPath, acTable, sTblNm, sTblNm&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;If&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;sFileNm = Dir&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Loop&lt;/SPAN&gt;&lt;br&gt;&lt;br&gt;Application.Echo &lt;SPAN style="color:#00007F"&gt;True&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.nandeshwar.info/projects/xlblog/2007/07/access-vba-link-all-dbase-files-from.html' title='Access VBA: Link all Dbase files from a folder'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10736658&amp;postID=7092187894431765758' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://nandeshwar.info/projects/xlblog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/7092187894431765758'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/7092187894431765758'/><author><name>Ashutosh</name><uri>http://www.blogger.com/profile/10968386226758376750</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10736658.post-7201016152838238693</id><published>2007-07-18T16:08:00.000-04:00</published><updated>2007-07-18T16:16:14.784-04:00</updated><title type='text'>Get file names from a directory</title><content type='html'>If you want get or print file names from a certain directory, then you can use following code. &lt;br /&gt;&lt;br /&gt;&lt;div id="code"&gt;&lt;font face=Courier New&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt; GetFileNames()&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; sPath &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;String&lt;/SPAN&gt;, sFileNm &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;String&lt;/SPAN&gt;&lt;br&gt;&lt;br&gt;sPath = "C:\DW\"&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'You can also use Application.GetOpenFilename to get a file name from a folder,&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'and then extract the Directory name from that string&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'You can also use filters with GetOpenFilenam such as *.txt, see Help on this topic&lt;/SPAN&gt;&lt;br&gt;&lt;br&gt;sFileNm = Dir(sPath, vbNormal) &lt;SPAN style="color:#007F00"&gt;'Get the first file from the specified directory&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'Start a loop&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Do&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;While&lt;/SPAN&gt; sFileNm &lt;&gt; ""&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#007F00"&gt;'If the file has a dbf extension then print the file name&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;If&lt;/SPAN&gt; Right(sFileNm, 3) = "dbf" &lt;SPAN style="color:#00007F"&gt;Then&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Debug.Print sFileNm&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;If&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;sFileNm = Dir&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Loop&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt;&lt;br&gt;&lt;/FONT&gt;&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.nandeshwar.info/projects/xlblog/2007/07/get-file-names-from-directory.html' title='Get file names from a directory'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10736658&amp;postID=7201016152838238693' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://nandeshwar.info/projects/xlblog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/7201016152838238693'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/7201016152838238693'/><author><name>Ashutosh</name><uri>http://www.blogger.com/profile/10968386226758376750</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10736658.post-1562172223947299064</id><published>2007-06-29T10:03:00.000-04:00</published><updated>2007-07-30T16:55:57.896-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='String Operations'/><title type='text'>Range Concatenation with a character</title><content type='html'>Are you frustrated because you have to concatenate a range, and you have to do that using CONCATENATE formula by entering each cell and putting a comma after every cell? Well, here's a solution to it. A procedure or a function whatever you like. If you use the procedure, it allows you to choose the input range, concatenate character, and the output range. If you use the function, then you can enter the optional concatenate character (by default it is a comma (,)), and the input range. &lt;br /&gt;&lt;br /&gt;Here are both:&lt;br /&gt;&lt;br /&gt;Procedure:&lt;br /&gt;&lt;br /&gt;&lt;div id="code"&gt;&lt;font face=Courier New&gt;&lt;SPAN style="color:#00007F"&gt;Public&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt; ConCatwChar()&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; sChar2bAdded &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;String&lt;/SPAN&gt;, rngRng2bCated &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; Range, sOutput &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;String&lt;/SPAN&gt;, rngTarget &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; Range, c &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; Range&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;On&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Error&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;GoTo&lt;/SPAN&gt; ConCatwChar_Error&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'You could use this line to return the concatenated string in this cell&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'Set rngTarget = ActiveCell&lt;/SPAN&gt;&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Set&lt;/SPAN&gt; rngRng2bCated = Application.InputBox(prompt:="Select the range you'd like to concatenate with a charcter", _&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Title:="Select Range", Type:=8)&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;If&lt;/SPAN&gt; rngRng2bCated &lt;SPAN style="color:#00007F"&gt;Is&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Nothing&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Then&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Exit&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'You could use this line to set the default to a comma and remove the inputbox line&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'sChar2bAdded = ","&lt;/SPAN&gt;&lt;br&gt;sChar2bAdded = InputBox("Enter the character you'd like to add between other cells", "Enter Character", ",")&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Set&lt;/SPAN&gt; rngTarget = Application.InputBox(prompt:="Select the range you'd like the output", _&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Title:="Select Range", Type:=8)&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;For&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Each&lt;/SPAN&gt; c &lt;SPAN style="color:#00007F"&gt;In&lt;/SPAN&gt; rngRng2bCated&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;sOutput = sOutput &amp; c.Value &amp; sChar2bAdded&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Next&lt;/SPAN&gt; c&lt;br&gt;&lt;br&gt;sOutput = Left(sOutput, Len(sOutput) - Len(sChar2bAdded))&lt;br&gt;rngTarget = sOutput&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;On&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Error&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;GoTo&lt;/SPAN&gt; 0&lt;br&gt;&amp;#160;&amp;#160; &lt;SPAN style="color:#00007F"&gt;Exit&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160; &lt;br&gt;ConCatwChar_Error:&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;MsgBox "Error " &amp; Err.Number &amp; " (" &amp; Err.Description &amp; ") in procedure ConCatwChar"&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Here's the function:&lt;br /&gt;&lt;div id="code"&gt;&lt;font face=Courier New&gt;&lt;SPAN style="color:#007F00"&gt;'You can change the option string character to nothing "" so that you get concatenated string without a character in between&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Public&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Function&lt;/SPAN&gt; ConCatFunc(rngRng2bCated &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; Range, &lt;SPAN style="color:#00007F"&gt;Optional&lt;/SPAN&gt; sChar2bAdded &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;String&lt;/SPAN&gt; = ",") &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;String&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; sOutput &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;String&lt;/SPAN&gt;, c &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; Range&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;On&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Error&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;GoTo&lt;/SPAN&gt; ConCatFunc_Error&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;For&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Each&lt;/SPAN&gt; c &lt;SPAN style="color:#00007F"&gt;In&lt;/SPAN&gt; rngRng2bCated&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;sOutput = sOutput &amp; c.Value &amp; sChar2bAdded&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Next&lt;/SPAN&gt; c&lt;br&gt;sOutput = Left(sOutput, Len(sOutput) - Len(sChar2bAdded))&lt;br&gt;ConCatFunc = sOutput&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;On&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Error&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;GoTo&lt;/SPAN&gt; 0&lt;br&gt;&amp;#160;&amp;#160; &lt;SPAN style="color:#00007F"&gt;Exit&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Function&lt;/SPAN&gt;&lt;br&gt;&lt;br&gt;ConCatFunc_Error:&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;ConCatFunc = "#Error#"&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Function&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Here's an example:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.nandeshwar.info/projects/xlblog/uploaded_images/ExcelConcatwChar-790103.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://www.nandeshwar.info/projects/xlblog/uploaded_images/ExcelConcatwChar-790099.JPG" border="0" alt="" /&gt;&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://www.nandeshwar.info/projects/xlblog/2007/06/range-concatenation-with-character.html' title='Range Concatenation with a character'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10736658&amp;postID=1562172223947299064' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://nandeshwar.info/projects/xlblog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/1562172223947299064'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/1562172223947299064'/><author><name>Ashutosh</name><uri>http://www.blogger.com/profile/10968386226758376750</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10736658.post-2172889337991429586</id><published>2007-06-29T09:40:00.000-04:00</published><updated>2007-07-30T16:55:57.896-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='String Operations'/><title type='text'>Text Search Count</title><content type='html'>If you want to do a text search count in a range, you can use the following formulas:&lt;br /&gt;Where D3 is the search text and the range A2:A16 houses the data.&lt;br /&gt;&lt;br /&gt;An array formula using SUM and SEARCH&lt;br /&gt;&lt;div id="code"&gt;{=SUM(IF(ISERROR(SEARCH(D3,A2:A16)),0,1))}&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Another using COUNTIF:&lt;br /&gt;&lt;div id="code"&gt;=COUNTIF(A2:A16,"*"&amp;D3&amp;"*")&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;This picture might make it clear:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.nandeshwar.info/projects/xlblog/uploaded_images/ExcelCount-723247.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://www.nandeshwar.info/projects/xlblog/uploaded_images/ExcelCount-723244.JPG" border="0" alt="" /&gt;&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://www.nandeshwar.info/projects/xlblog/2007/06/text-search-count.html' title='Text Search Count'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10736658&amp;postID=2172889337991429586' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://nandeshwar.info/projects/xlblog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/2172889337991429586'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/2172889337991429586'/><author><name>Ashutosh</name><uri>http://www.blogger.com/profile/10968386226758376750</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10736658.post-115583769708367416</id><published>2006-08-17T13:57:00.000-04:00</published><updated>2006-08-17T14:01:37.100-04:00</updated><title type='text'>Change Row and Column Headers</title><content type='html'>You cannot change the default Row (1,2,3,...) and Column (A,B,C,D....) headers, but a workaround is:&lt;br /&gt;1. Enter what you'd like to be your Row Headers in the first column after cell A1&lt;br /&gt;2. Enter what you'd like to be your Column Headers in the first row after cell A1&lt;br /&gt;3. Format first row and column to match the default headers&lt;br /&gt;4. Go to Tools&gt;Options&gt;View Tab&gt;Clear the Row &amp; column Headers check box.&lt;br /&gt;&lt;br /&gt;Now, your sheet might look like this:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.nandeshwar.info/projects/xlblog/uploaded_images/changeRowandColumnHeader-770396.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://www.nandeshwar.info/projects/xlblog/uploaded_images/changeRowandColumnHeader-768094.JPG" border="0" alt="" /&gt;&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://www.nandeshwar.info/projects/xlblog/2006/08/change-row-and-column-headers.html' title='Change Row and Column Headers'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10736658&amp;postID=115583769708367416' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://nandeshwar.info/projects/xlblog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/115583769708367416'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/115583769708367416'/><author><name>Ashutosh</name><uri>http://www.blogger.com/profile/10968386226758376750</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10736658.post-115531452062676978</id><published>2006-08-11T12:41:00.000-04:00</published><updated>2006-08-11T13:09:19.223-04:00</updated><title type='text'>Assign macro to a button</title><content type='html'>In this short video you can learn how to assign a macro to a button on your toolbar. If this macro is in the personal workbook then you can use it on any workbook.&lt;div align="middle"&gt;&lt;div id="code"&gt;&lt;br /&gt;&lt;embed style="width:400px; height:326px;" id="VideoPlayback" align="middle" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=3858357903487620658&amp;hl=en" quality="best" bgcolor="#ffffff" scale="noScale" salign="TL"  FlashVars="playerMode=embedded"&gt; &lt;/embed&gt; &lt;/div&gt;&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.nandeshwar.info/projects/xlblog/2006/08/assign-macro-to-button.html' title='Assign macro to a button'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10736658&amp;postID=115531452062676978' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://nandeshwar.info/projects/xlblog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/115531452062676978'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/115531452062676978'/><author><name>Ashutosh</name><uri>http://www.blogger.com/profile/10968386226758376750</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10736658.post-115496538496043892</id><published>2006-08-07T11:41:00.000-04:00</published><updated>2006-08-07T11:44:33.433-04:00</updated><title type='text'>Count cells without formulae</title><content type='html'>If you want to count cells in a given range without formulae use this function&lt;div id="code"&gt;&lt;font face=Courier New&gt;&lt;SPAN style="color:#00007F"&gt;Function&lt;/SPAN&gt; CountNoFormula(rng &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; Range) &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Long&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; c &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; Range&lt;br&gt;&amp;#160;&amp;#160; &lt;SPAN style="color:#00007F"&gt;On&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Error&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;GoTo&lt;/SPAN&gt; CountNoFormula_Error&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;For &lt;SPAN style="color:#00007F"&gt;Each&lt;/SPAN&gt; c &lt;SPAN style="color:#00007F"&gt;In&lt;/SPAN&gt; rng&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;If&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Not&lt;/SPAN&gt; c.HasFormula &lt;SPAN style="color:#00007F"&gt;Then&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;CountNoFormula = CountNoFormula + 1&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;If&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;Next&lt;/SPAN&gt; c&lt;br&gt;CountNoFormula_CleanUpExit:&lt;br&gt;&amp;#160;&amp;#160; Exit &lt;SPAN style="color:#00007F"&gt;Function&lt;/SPAN&gt;&lt;br&gt;CountNoFormula_Error:&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;CountNoFormula = &lt;SPAN style="color:#00007F"&gt;CVErr&lt;/SPAN&gt;(Err.Number)&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;Resume&lt;/SPAN&gt; CountNoFormula_CleanUpExit&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Function&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/div&gt;&lt;br /&gt;If you want to count cells with formule then just remove then "Not" in front of c.HasFormula</content><link rel='alternate' type='text/html' href='http://www.nandeshwar.info/projects/xlblog/2006/08/count-cells-without-formulae.html' title='Count cells without formulae'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10736658&amp;postID=115496538496043892' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://nandeshwar.info/projects/xlblog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/115496538496043892'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/115496538496043892'/><author><name>Ashutosh</name><uri>http://www.blogger.com/profile/10968386226758376750</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10736658.post-114063224462544509</id><published>2006-02-22T12:58:00.000-05:00</published><updated>2006-02-22T13:29:08.386-05:00</updated><title type='text'>Average of n samllest or n biggest numbers from a list</title><content type='html'>To calculate the average of &lt;em&gt;n&lt;/em&gt; biggest numbers from a list enter this formula with Ctrl + Shift + Enter:&lt;br /&gt;&lt;div id="code"&gt;=AVERAGE(IF(RANK(&lt;em&gt;yourrange&lt;/em&gt;,&lt;em&gt;yourrange&lt;/em&gt;)&lt;=&lt;em&gt;n&lt;/em&gt;,&lt;em&gt;yourrange&lt;/em&gt;,""))&lt;/div&gt;&lt;br /&gt;To calculate the average of &lt;em&gt;n&lt;/em&gt; smallest numbers from a list enter this formula with Ctrl + Shift + Enter:&lt;br /&gt;&lt;div id="code"&gt;=AVERAGE(IF(RANK(&lt;em&gt;yourrange&lt;/em&gt;,&lt;em&gt;yourrange&lt;/em&gt;)&gt;COUNT(&lt;em&gt;yourrange&lt;/em&gt;)-&lt;em&gt;n&lt;/em&gt;,&lt;em&gt;yourrange&lt;/em&gt;,""))&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;For an example:&lt;a href="http://www.nandeshwar.info/projects/xlblog/uploaded_images/Average_Small_big-754809.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://www.nandeshwar.info/projects/xlblog/uploaded_images/Average_Small_big-749940.JPG" border="0" alt="" /&gt;&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://www.nandeshwar.info/projects/xlblog/2006/02/average-of-n-samllest-or-n-biggest.html' title='Average of n samllest or n biggest numbers from a list'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10736658&amp;postID=114063224462544509' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://nandeshwar.info/projects/xlblog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/114063224462544509'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/114063224462544509'/><author><name>Ashutosh</name><uri>http://www.blogger.com/profile/10968386226758376750</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10736658.post-113942805810404386</id><published>2006-02-08T14:47:00.000-05:00</published><updated>2006-02-08T14:47:38.153-05:00</updated><title type='text'>Add Specific number of zeros to a value</title><content type='html'>This is one of the finest forumlae I've ever seen. Check this &lt;a href="http://www.mrexcel.com/board2/viewtopic.php?t=193924"&gt;post&lt;/a&gt; at MrExcel.&lt;br /&gt;&lt;br /&gt;If you want to have a value specific number of digits otherwise add zeros in front of it, this formula could be used:&lt;br /&gt;=TEXT(A1,REPT("0",&lt;em&gt;n&lt;/em&gt;))&lt;br /&gt;where n is the number of digits you want.&lt;br /&gt;&lt;br /&gt;So 4555 becomes 000004555 with formula =TEXT(4555,REPT("0",9))</content><link rel='alternate' type='text/html' href='http://www.nandeshwar.info/projects/xlblog/2006/02/add-specific-number-of-zeros-to-value.html' title='Add Specific number of zeros to a value'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10736658&amp;postID=113942805810404386' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://nandeshwar.info/projects/xlblog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/113942805810404386'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/113942805810404386'/><author><name>Ashutosh</name><uri>http://www.blogger.com/profile/10968386226758376750</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10736658.post-113941577050509623</id><published>2006-02-08T11:22:00.000-05:00</published><updated>2006-02-08T11:22:50.546-05:00</updated><title type='text'>MOD Function and Mod Operator Return Different Values</title><content type='html'>I didn't know this before today when an user at MrExcel wondered why he was not getting consistent answers with Excel and VBA. The key is negative numbers.&lt;br /&gt;&lt;br /&gt;If you happen to have negative numbers (one of them) and you want to calculate MOD, you should use this code in VBA&lt;br /&gt;&lt;div id ="code"&gt;yourmodval=n-d*INT(n/d)&lt;/div&gt;&lt;br /&gt;Where n is your number and d is your divisor.&lt;br /&gt;&lt;br /&gt;For more info, check:&lt;br /&gt;&lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;141178"&gt;MOD Function and Mod Operator Return Different Values&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://www.nandeshwar.info/projects/xlblog/2006/02/mod-function-and-mod-operator-return.html' title='MOD Function and Mod Operator Return Different Values'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10736658&amp;postID=113941577050509623' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://nandeshwar.info/projects/xlblog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/113941577050509623'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/113941577050509623'/><author><name>Ashutosh</name><uri>http://www.blogger.com/profile/10968386226758376750</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10736658.post-113882313373699746</id><published>2006-02-01T14:00:00.000-05:00</published><updated>2006-02-23T05:08:51.210-05:00</updated><title type='text'>Change references</title><content type='html'>If you want to change references of a formula, you could toggle F4 key inside the formula to change the references from Absolute, Column Absolute Row Absolute or all relative.&lt;br /&gt;&lt;br /&gt;Although, if  you have to change references from a range, you can use these two options&lt;br /&gt;1. Download &lt;a href=""&gt;ASAP utilities&lt;/a&gt;, because it's worth it, they have more than 300 utilities which are used many times.&lt;br /&gt;&lt;br /&gt;2. Use this code. &lt;br /&gt;&lt;div id="code"&gt;&lt;font face=Courier New&gt;&lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt; Change_refs()&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'This sub will change references of formula to different options shown by a userform&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'This code will not run without the userform&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;On&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Error&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;GoTo&lt;/SPAN&gt; Change_refs_Error&lt;br&gt;Load frmRefType&lt;br&gt;frmRefType.Show&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; IPFormula &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;String&lt;/SPAN&gt;, OPFormula &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;String&lt;/SPAN&gt;, c &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; Range&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; RefStyle &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; XlReferenceStyle&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;With&lt;/SPAN&gt; frmRefType&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;If&lt;/SPAN&gt; .obAbs &lt;SPAN style="color:#00007F"&gt;Then&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;RefStyle = xlAbsolute&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;ElseIf&lt;/SPAN&gt; .obCAbs &lt;SPAN style="color:#00007F"&gt;Then&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;RefStyle = xlRelRowAbsColumn&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;ElseIf&lt;/SPAN&gt; .obRAbs &lt;SPAN style="color:#00007F"&gt;Then&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;RefStyle = xlAbsRowRelColumn&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;ElseIf&lt;/SPAN&gt; .obRel &lt;SPAN style="color:#00007F"&gt;Then&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;RefStyle = xlRelative&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;Else&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;Exit&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;If&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;With&lt;/SPAN&gt;&lt;br&gt;Application.ScreenUpdating = &lt;SPAN style="color:#00007F"&gt;False&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;For&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Each&lt;/SPAN&gt; c &lt;SPAN style="color:#00007F"&gt;In&lt;/SPAN&gt; Selection&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;If&lt;/SPAN&gt; IsEmpty(c) &lt;SPAN style="color:#00007F"&gt;Then&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;GoTo&lt;/SPAN&gt; Nextc&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;IPFormula = c.Formula&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;OPFormula = Application.ConvertFormula( _&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Formula:=IPFormula, _&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;fromReferenceStyle:=xlA1, _&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;toReferenceStyle:=xlA1, ToAbsolute:=RefStyle)&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;c.Formula = OPFormula&lt;br&gt;Nextc:&lt;br&gt;Next c&lt;br&gt;Application.ScreenUpdating = &lt;SPAN style="color:#00007F"&gt;True&lt;/SPAN&gt;&lt;br&gt;Unload frmRefType&lt;br&gt;&amp;#160;&amp;#160; &lt;SPAN style="color:#00007F"&gt;On&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Error&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;GoTo&lt;/SPAN&gt; 0&lt;br&gt;&amp;#160;&amp;#160; &lt;SPAN style="color:#00007F"&gt;Exit&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt;&lt;br&gt;Change_refs_Error:&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;If&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Not&lt;/SPAN&gt; Application.ScreenUpdating &lt;SPAN style="color:#00007F"&gt;Then&lt;/SPAN&gt; Application.ScreenUpdating = &lt;SPAN style="color:#00007F"&gt;True&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Unload frmRefType&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;MsgBox "Error " &amp; Err.Number &amp; " (" &amp; Err.Description &amp; ") in procedure Change_refs"&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt;&lt;br&gt;&lt;/FONT&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;You'll have to download the add-in to make this code run. You can edit the Addin just by opening it in VBA. Here is the &lt;a href="http://www.nandeshwar.info/projects/files/Change_Ref_Styles.xla"&gt;Addin&lt;/a&gt;. If you install this add in it will create a button "Change References"</content><link rel='alternate' type='text/html' href='http://www.nandeshwar.info/projects/xlblog/2006/02/change-references.html' title='Change references'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10736658&amp;postID=113882313373699746' title='2 Comments'/><link rel='replies' type='application/atom+xml' href='http://nandeshwar.info/projects/xlblog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/113882313373699746'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/113882313373699746'/><author><name>Ashutosh</name><uri>http://www.blogger.com/profile/10968386226758376750</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10736658.post-113865088451455424</id><published>2006-01-30T14:54:00.000-05:00</published><updated>2006-01-30T14:54:44.550-05:00</updated><title type='text'>Trendline coefficients and regression analysis</title><content type='html'>This is a great tutorial by Tushar. It tells you a lot about regression, trendlines and using them in VBA. Check it out!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.tushar-mehta.com/excel/tips/trendline_coefficients.htm"&gt;Trendline coefficients&lt;/a&gt;: "Trendline Coefficients and Regression Analysis"</content><link rel='alternate' type='text/html' href='http://www.nandeshwar.info/projects/xlblog/2006/01/trendline-coefficients-and-regression.html' title='Trendline coefficients and regression analysis'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10736658&amp;postID=113865088451455424' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://nandeshwar.info/projects/xlblog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/113865088451455424'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/113865088451455424'/><author><name>Ashutosh</name><uri>http://www.blogger.com/profile/10968386226758376750</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10736658.post-113864593905508760</id><published>2006-01-30T13:24:00.000-05:00</published><updated>2006-01-30T13:32:19.080-05:00</updated><title type='text'>Send File Path-Email via Groupwise</title><content type='html'>This is what I had to do lots of times. Send the file path of an Excel workbook to my supervisor. So I created this macro to send the activeworkbook full file path to the specified user. This can actually be well modified to create an AddIn, but for now, this is what is going to be. Insert a module in the personal.xls and insert this code. A reference to "Groupware Type library" is a must to make this macro work.&lt;br /&gt;&lt;div id="code"&gt;&lt;font face=Courier New&gt;&lt;SPAN style="color:#00007F"&gt;Option&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Explicit&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Private&lt;/SPAN&gt; ogwApp &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; GroupwareTypeLibrary.Application&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Private&lt;/SPAN&gt; ogwRootAcct &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; GroupwareTypeLibrary.Account&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt; SendEmail()&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; strRecipient &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;String&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;On&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Error&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;GoTo&lt;/SPAN&gt; SendEmail_Error&lt;br&gt;strRecipient = InputBox("Enter the email address of recepient", "Recipient Name")&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;If&lt;/SPAN&gt; strRecipient = "" &lt;SPAN style="color:#00007F"&gt;Then&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;MsgBox "No Recipient specified", vbCritical&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;Exit&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;If&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Const&lt;/SPAN&gt; NGW$ = "NGW"&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; ogwNewMessage &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; GroupwareTypeLibrary.Mail&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; StrSubject &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;String&lt;/SPAN&gt;, StrBody &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;String&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; strWkbkName &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;String&lt;/SPAN&gt;, strWkbkPath &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;String&lt;/SPAN&gt;&lt;br&gt;strWkbkName = ActiveWorkbook.Name&lt;br&gt;StrSubject = strWkbkName &amp; "-File"&lt;br&gt;strWkbkPath = ActiveWorkbook.Path&lt;br&gt;StrBody = "Please find the file-" &amp; strWkbkName &amp; " here- " &amp; strWkbkPath &amp; "\" &amp; strWkbkName&lt;br&gt;StrBody = StrBody &amp; vbCrLf &amp; vbCrLf &amp; "Thanks"&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;If&lt;/SPAN&gt; ogwApp &lt;SPAN style="color:#00007F"&gt;Is&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Nothing&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Then&lt;/SPAN&gt; &lt;SPAN style="color:#007F00"&gt;'Need to set object reference&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;DoEvents&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;Set&lt;/SPAN&gt; ogwApp = CreateObject("NovellGroupWareSession")&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;DoEvents&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;If&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; StrLoginName &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;String&lt;/SPAN&gt;, StrMailPassword &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;String&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Set&lt;/SPAN&gt; ogwRootAcct = ogwApp.Login&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Set&lt;/SPAN&gt; ogwNewMessage = ogwRootAcct.WorkFolder.Messages.Add("GW.MESSAGE.MAIL", egwDraft)&lt;br&gt;DoEvents&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;With&lt;/SPAN&gt; ogwNewMessage&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;.Recipients.Add (strRecipient)&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;SPAN style="color:#007F00"&gt;'Assign the SUBJECT text&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;.Subject = Str&lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt;ject&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;SPAN style="color:#007F00"&gt;'Assign the BODY text&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; .BodyText = StrBody&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;SPAN style="color:#007F00"&gt;'Send the message&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;.Send&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;DoEvents&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;With&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160; &lt;SPAN style="color:#00007F"&gt;On&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Error&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;GoTo&lt;/SPAN&gt; 0&lt;br&gt;&amp;#160;&amp;#160; &lt;SPAN style="color:#00007F"&gt;Set&lt;/SPAN&gt; ogwRootAcct = &lt;SPAN style="color:#00007F"&gt;Nothing&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160; &lt;SPAN style="color:#00007F"&gt;Set&lt;/SPAN&gt; ogwNewMessage = &lt;SPAN style="color:#00007F"&gt;Nothing&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160; &lt;SPAN style="color:#00007F"&gt;Set&lt;/SPAN&gt; ogwApp = &lt;SPAN style="color:#00007F"&gt;Nothing&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160; &lt;SPAN style="color:#00007F"&gt;Exit&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Sub&lt;/SPAN&gt;&lt;br&gt;SendEmail_Error:&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;MsgBox "Error " &amp; Err.Number &amp; " (" &amp; Err.Description &amp; ") in procedure SendEmail"&lt;br&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;SPAN style="color:#00007F"&gt;Set&lt;/SPAN&gt; ogwRootAcct = &lt;SPAN style="color:#00007F"&gt;Nothing&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160; &lt;SPAN style="color:#00007F"&gt;Set&lt;/SPAN&gt; ogwNewMessage = &lt;SPAN style="color:#00007F"&gt;Nothing&lt;/SPAN&gt;&lt;br&gt;&amp;#160;&amp;#160; &lt;SPAN style="color:#00007F"&gt;Set&lt;/SPAN&gt; ogwApp = &lt;SPAN style="color:#00007F"&gt;Nothing&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; Sub&lt;br&gt;&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'http://www.phhp.ufl.edu/~smanamal/misc/Groupwise.htm&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'http://www.vbaexpress.com/kb/getarticle.php?kb_id=277&lt;/SPAN&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/FONT&gt;&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.nandeshwar.info/projects/xlblog/2006/01/send-file-path-email-via-groupwise.html' title='Send File Path-Email via Groupwise'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10736658&amp;postID=113864593905508760' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://nandeshwar.info/projects/xlblog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/113864593905508760'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/113864593905508760'/><author><name>Ashutosh</name><uri>http://www.blogger.com/profile/10968386226758376750</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10736658.post-113838267592434122</id><published>2006-01-27T12:18:00.000-05:00</published><updated>2006-01-27T12:24:35.936-05:00</updated><title type='text'>Auto increment a cell</title><content type='html'>Suppose if you want to increment a cell by 1 to see how your formulae handle that change, may be a simulation. That means that cell would be incremented by 1 everytime you hit F9 (keyboard short cut to make Excel recalculate). To achieve this do the following:&lt;br /&gt;&lt;blockquote&gt;1. On the Tools menu, click Options, and then click the Calculation tab. &lt;br /&gt;2. Select the Iteration check box. &lt;br /&gt;3. Set the maximum number of times Microsoft Excel will recalculate, type one as the number of iterations in the Maximum iterations box&lt;/blockquote&gt;-MS Excel Help&lt;br /&gt;&lt;br /&gt;Then enter this formula in the cell which you want to increment, suppose it's A1.&lt;br /&gt;Formula for A1: =A1+1.&lt;br /&gt;&lt;br /&gt;That's it! Now, every time you hit F9, that cell will be incremented by 1. If you want it increment by some other number, use that number in the formula.</content><link rel='alternate' type='text/html' href='http://www.nandeshwar.info/projects/xlblog/2006/01/auto-increment-cell.html' title='Auto increment a cell'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10736658&amp;postID=113838267592434122' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://nandeshwar.info/projects/xlblog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/113838267592434122'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/113838267592434122'/><author><name>Ashutosh</name><uri>http://www.blogger.com/profile/10968386226758376750</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10736658.post-113803412819339833</id><published>2006-01-23T11:35:00.000-05:00</published><updated>2006-01-23T15:59:36.256-05:00</updated><title type='text'>List of resources that are available to help you learn Visual Basic for Applications programming</title><content type='html'>Check this article @ MS's website to know where to get help for VBA programming.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/226118/EN-US/"&gt;List of resources that are available to help you learn Visual Basic for Applications programming&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://www.nandeshwar.info/projects/xlblog/2006/01/list-of-resources-that-are-available.html' title='List of resources that are available to help you learn Visual Basic for Applications programming'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10736658&amp;postID=113803412819339833' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://nandeshwar.info/projects/xlblog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/113803412819339833'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/113803412819339833'/><author><name>Ashutosh</name><uri>http://www.blogger.com/profile/10968386226758376750</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10736658.post-113786788528895173</id><published>2006-01-21T12:59:00.000-05:00</published><updated>2006-01-21T13:27:51.316-05:00</updated><title type='text'>Random Numbers</title><content type='html'>Recently, I had the need of generating different types of random numbers. Although, Excel's Data Analysis Toolpak can generate good random numbers, I had to create these functions to meet my needs.&lt;br /&gt;&lt;br /&gt;First: Unique Random Numbers&lt;br /&gt;This function was modified from ozgrid's RandLotto function, which returns string. This function will return an array of unqiue random integers in the given range. If you want to return more than one number then this function should be entered as an array formula with Ctrl + Shift + Enter.&lt;br /&gt;&lt;div id="code"&gt;&lt;font face=Courier New&gt;&lt;SPAN style="color:#00007F"&gt;Function&lt;/SPAN&gt; UniqueRand(lngSmallest &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Long&lt;/SPAN&gt;, lngHighest &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Long&lt;/SPAN&gt;, HowManyNos &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Long&lt;/SPAN&gt;) &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Long&lt;/SPAN&gt;()&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'modified from http://www.ozgrid.com/VBA/RandomNumbers.htm&lt;/SPAN&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; iArr &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Variant&lt;/SPAN&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; i &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Integer&lt;/SPAN&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; r &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Integer&lt;/SPAN&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; temp &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Integer&lt;/SPAN&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Application.Volatile&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#00007F"&gt;ReDim&lt;/SPAN&gt; iArr(lngSmallest &lt;SPAN style="color:#00007F"&gt;To&lt;/SPAN&gt; lngHighest)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#00007F"&gt;For&lt;/SPAN&gt; i = lngSmallest &lt;SPAN style="color:#00007F"&gt;To&lt;/SPAN&gt; lngHighest&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iArr(i) = i&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#00007F"&gt;Next&lt;/SPAN&gt; i&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#00007F"&gt;For&lt;/SPAN&gt; i = lngHighest &lt;SPAN style="color:#00007F"&gt;To&lt;/SPAN&gt; lngSmallest + 1 &lt;SPAN style="color:#00007F"&gt;Step&lt;/SPAN&gt; -1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;r = Int(Rnd() * (i - lngSmallest + 1)) + lngSmallest&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;temp = iArr(r)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iArr(r) = iArr(i)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iArr(i) = temp&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#00007F"&gt;Next&lt;/SPAN&gt; i&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; resultArr() &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; Long: &lt;SPAN style="color:#00007F"&gt;ReDim&lt;/SPAN&gt; resultArr(HowManyNos - 1, 0)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#00007F"&gt;For&lt;/SPAN&gt; i = lngSmallest &lt;SPAN style="color:#00007F"&gt;To&lt;/SPAN&gt; lngSmallest + HowManyNos - 1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;resultArr(j, 0) = iArr(i)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;j = j + 1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#00007F"&gt;Next&lt;/SPAN&gt; i&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UniqueRand = resultArr&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Function&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/div&gt;&lt;br /&gt;Second: Gaussian or Normal Random Numbers with specified mean and Standard deviation(SD). Now, this function is different than the Analysis toolpak utility because it generates random numbers on a fixed mean and Standard deviation. This function will allow the user to generate random numbers each with different mean and SD.&lt;br /&gt;&lt;div id="code"&gt;&lt;font face=Courier New&gt;&lt;SPAN style="color:#007F00"&gt;'This function will generate Gaussian or Normal Random Numbers based on given mean and SD&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Public&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Function&lt;/SPAN&gt; GenGaussNoise(mean &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Double&lt;/SPAN&gt;, SD &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Double&lt;/SPAN&gt;, HowMany &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Long&lt;/SPAN&gt;) &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Double&lt;/SPAN&gt;()&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; x &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Double&lt;/SPAN&gt;, i &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Long&lt;/SPAN&gt;, j &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Long&lt;/SPAN&gt;&lt;br&gt;itr = 50&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; dblResArr() &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; Double: &lt;SPAN style="color:#00007F"&gt;ReDim&lt;/SPAN&gt; dblResArr(HowMany - 1, 0)&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;For&lt;/SPAN&gt; j = 1 &lt;SPAN style="color:#00007F"&gt;To&lt;/SPAN&gt; HowMany&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x = 0&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#00007F"&gt;For&lt;/SPAN&gt; i = 1 &lt;SPAN style="color:#00007F"&gt;To&lt;/SPAN&gt; itr&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Randomize&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;U = Rnd&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x = x + U&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#00007F"&gt;Next&lt;/SPAN&gt; i&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#007F00"&gt;' /* for uniform randoms in [0,1], mu = 0.5 and var = 1/12 */&lt;/SPAN&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#007F00"&gt;' /* adjust X so mu = 0 and var = 1 */&lt;/SPAN&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x = x - itr / 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color:#007F00"&gt;' /* set mean to 0 */&lt;/SPAN&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x = x * Sqr(12 / itr)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color:#007F00"&gt;'&amp;nbsp;&amp;nbsp;/* adjust variance to 1 */&lt;/SPAN&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dblResArr(j - 1, 0) = mean + SD * x&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;Next&lt;/SPAN&gt; j&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GenGaussNoise = dblResArr&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Function&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/div&gt;&lt;br /&gt;Third: Generate white noise or Guassian or Normal random numbers with mean = 0 and SD =1. Although, this could be achieved by the previous function, this function uses Box-Muller method. In this function too, you can use different mean and SD, although if not provided it would take mean =0 and SD=1&lt;br /&gt;&lt;div id ="code"&gt;&lt;font face=Courier New&gt;&lt;SPAN style="color:#00007F"&gt;Public&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Function&lt;/SPAN&gt; GenWhiteNoise(HowMany &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Long&lt;/SPAN&gt;, &lt;SPAN style="color:#00007F"&gt;Optional&lt;/SPAN&gt; mean &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Double&lt;/SPAN&gt; = 0, &lt;SPAN style="color:#00007F"&gt;Optional&lt;/SPAN&gt; variance &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Double&lt;/SPAN&gt; = 1) &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Double&lt;/SPAN&gt;()&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'Returns a normally distributed random variate with mean 0 and variance 1, a.k.a. "White Noise".&lt;/SPAN&gt;&lt;br&gt;&lt;SPAN style="color:#007F00"&gt;'&amp;nbsp;&amp;nbsp;Uses the Box-Muller method&lt;/SPAN&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; Value1 &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Single&lt;/SPAN&gt;, Value2 &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Single&lt;/SPAN&gt;, Fac &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Single&lt;/SPAN&gt;, Rsq &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Single&lt;/SPAN&gt;, SD &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Double&lt;/SPAN&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#00007F"&gt;Dim&lt;/SPAN&gt; dblResArr() &lt;SPAN style="color:#00007F"&gt;As&lt;/SPAN&gt; Double: &lt;SPAN style="color:#00007F"&gt;ReDim&lt;/SPAN&gt; dblResArr(HowMany - 1, 0)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SD = Sqr(variance)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#00007F"&gt;For&lt;/SPAN&gt; i = 1 &lt;SPAN style="color:#00007F"&gt;To&lt;/SPAN&gt; HowMany&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#00007F"&gt;Do&lt;/SPAN&gt;&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;Randomize&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;Value1 = 2 * Rnd - 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;Value2 = 2 * Rnd - 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;Rsq = Value1 ^ 2 + Value2 ^ 2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#00007F"&gt;Loop&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Until&lt;/SPAN&gt; Rsq &gt; 0 And Rsq &lt; 1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Fac = (-2 * Log(Rsq) / Rsq) ^ 0.5&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#00007F"&gt;If&lt;/SPAN&gt; Rnd &lt; 0.5 &lt;SPAN style="color:#00007F"&gt;Then&lt;/SPAN&gt;&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;dblResArr(i - 1, 0) = mean + SD * Value1 * Fac&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#00007F"&gt;Else&lt;/SPAN&gt;&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;dblResArr(i - 1, 0) = mean + SD * Value2 * Fac&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;If&lt;/SPAN&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#00007F"&gt;Next&lt;/SPAN&gt; i&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GenWhiteNoise = dblResArr&lt;br&gt;&lt;SPAN style="color:#00007F"&gt;End&lt;/SPAN&gt; &lt;SPAN style="color:#00007F"&gt;Function&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/div&gt;&lt;br /&gt;This is a screenshot of the Excel file. Also, the original Excel file can be downloaded &lt;a href="http://www.nandeshwar.info/projects/xlblog/files/AllTypeofRandomNos.xls"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;a href="http://www.nandeshwar.info/projects/xlblog/uploaded_images/RandomNumbers-715877.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://www.nandeshwar.info/projects/xlblog/uploaded_images/RandomNumbers-708779.JPG" border="0" alt="" /&gt;&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://www.nandeshwar.info/projects/xlblog/2006/01/random-numbers.html' title='Random Numbers'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10736658&amp;postID=113786788528895173' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://nandeshwar.info/projects/xlblog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/113786788528895173'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10736658/posts/default/113786788528895173'/><author><name>Ashutosh</name><uri>http://www.blogger.com/profile/10968386226758376750</uri><email>noreply@blogger.com</email></author></entry></feed>