<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Useful Utilities</title>
	<atom:link href="http://www.dailydoseofexcel.com/archives/2007/03/06/useful-utilities/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dailydoseofexcel.com/archives/2007/03/06/useful-utilities/</link>
	<description>Daily posts of Excel tips…and other stuff</description>
	<lastBuildDate>Wed, 08 Feb 2012 23:58:05 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: DM/Diddy</title>
		<link>http://www.dailydoseofexcel.com/archives/2007/03/06/useful-utilities/#comment-22810</link>
		<dc:creator>DM/Diddy</dc:creator>
		<pubDate>Mon, 19 Mar 2007 22:51:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1618#comment-22810</guid>
		<description>&lt;p&gt;Oh, I have piles of macros, too.  Most of the useful ones are invoked from a modeless userform  that opens from a toolbar button with a shrunk down photo of my face as the icon (personal.xls, get it?)&lt;/p&gt;
&lt;p&gt;The one I use the most shows a checked listbox of the sheets in the active workbook.  I can hide/unhide or protect/unprotect all or some of the sheets in one fell swoop.  I absolutely HATE that you can only unhide one sheet at a time in the absurdly-located Format/sheet/unhide... dialog.&lt;/p&gt;
&lt;p&gt;Other stuff I didn&#039;t see mentioned:&lt;/p&gt;
&lt;p&gt;Eliminate #DIV/0! by changing simple formulas in the selection of the form &quot;=a/b&quot; to &quot;=if(b,a/b,0)&quot;&lt;br&gt;
Also do similar to above for complex formulas using ISERROR().&lt;br&gt;
Reformat all comments in selected cells to Ariel 10 point normal.&lt;br&gt;
A find and replace for changing names of shapes on the current sheet.&lt;br&gt;
Reset the cell pointed to by ActiveCell.SpecialCells(xlLastCell) by using ActiveSheet.UsedRange&lt;/p&gt;
&lt;p&gt;I also have toolbar buttons to:&lt;/p&gt;
&lt;p&gt;Toggle between A1 and R1C1 styles (I use this all the time).&lt;br&gt;
Invoke the Insert/Name/Define dialog.&lt;/p&gt;
&lt;p&gt;Personal.XLS also builds and supports the right-click context menu to which I&#039;ve added:&lt;/p&gt;
&lt;p&gt;Copy Reference - if the selected cell(s) is a named range like &quot;MyTotal&quot;, put the string &quot;Range(&quot;MyTotal&quot;)&quot; on the clipboard so I can paste it into my code.  I love this!  It works for sheet-local names as well, and (to my great shame) unnamed ranges.&lt;br&gt;
I also have a couple that copy cells without the absolute referencing like Stuart above, but it works with an arbitrarily large selection of cells.&lt;/p&gt;
&lt;p&gt;Dave&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Oh, I have piles of macros, too.  Most of the useful ones are invoked from a modeless userform  that opens from a toolbar button with a shrunk down photo of my face as the icon (personal.xls, get it?)</p>
<p>The one I use the most shows a checked listbox of the sheets in the active workbook.  I can hide/unhide or protect/unprotect all or some of the sheets in one fell swoop.  I absolutely HATE that you can only unhide one sheet at a time in the absurdly-located Format/sheet/unhide&#8230; dialog.</p>
<p>Other stuff I didn&#8217;t see mentioned:</p>
<p>Eliminate #DIV/0! by changing simple formulas in the selection of the form &#8220;=a/b&#8221; to &#8220;=if(b,a/b,0)&#8221;<br />
Also do similar to above for complex formulas using ISERROR().<br />
Reformat all comments in selected cells to Ariel 10 point normal.<br />
A find and replace for changing names of shapes on the current sheet.<br />
Reset the cell pointed to by ActiveCell.SpecialCells(xlLastCell) by using ActiveSheet.UsedRange</p>
<p>I also have toolbar buttons to:</p>
<p>Toggle between A1 and R1C1 styles (I use this all the time).<br />
Invoke the Insert/Name/Define dialog.</p>
<p>Personal.XLS also builds and supports the right-click context menu to which I&#8217;ve added:</p>
<p>Copy Reference &#8211; if the selected cell(s) is a named range like &#8220;MyTotal&#8221;, put the string &#8220;Range(&#8220;MyTotal&#8221;)&#8221; on the clipboard so I can paste it into my code.  I love this!  It works for sheet-local names as well, and (to my great shame) unnamed ranges.<br />
I also have a couple that copy cells without the absolute referencing like Stuart above, but it works with an arbitrarily large selection of cells.</p>
<p>Dave</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stuart Bridge</title>
		<link>http://www.dailydoseofexcel.com/archives/2007/03/06/useful-utilities/#comment-22757</link>
		<dc:creator>Stuart Bridge</dc:creator>
		<pubDate>Mon, 12 Mar 2007 08:16:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1618#comment-22757</guid>
		<description>&lt;p&gt;I often need to copy a cell formula and paste it into another cell exactly as it appears in the initial cell without absolute referencing.  I have two small pieces of vba that copy the cell contents and them paste it into another cell - very handy.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I often need to copy a cell formula and paste it into another cell exactly as it appears in the initial cell without absolute referencing.  I have two small pieces of vba that copy the cell contents and them paste it into another cell &#8211; very handy.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Al Raschdorf</title>
		<link>http://www.dailydoseofexcel.com/archives/2007/03/06/useful-utilities/#comment-22716</link>
		<dc:creator>Al Raschdorf</dc:creator>
		<pubDate>Thu, 08 Mar 2007 22:15:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1618#comment-22716</guid>
		<description>&lt;p&gt;I got two macros in my add-in, and they both are hooked up to toolbar buttons and hotkeys:&lt;/p&gt;
&lt;p&gt;One applies word wrap. (I still can&#039;t believe this is not a canned selection when customizing toolbars or keyboard shortcuts)&lt;br&gt;
The other brings up a calendar form so that you can select a date (ever since I saw this kind of user interface on a travel website I NEEDED to have it everywhere. I think I process dates with the creative/image side of my brain.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I got two macros in my add-in, and they both are hooked up to toolbar buttons and hotkeys:</p>
<p>One applies word wrap. (I still can&#8217;t believe this is not a canned selection when customizing toolbars or keyboard shortcuts)<br />
The other brings up a calendar form so that you can select a date (ever since I saw this kind of user interface on a travel website I NEEDED to have it everywhere. I think I process dates with the creative/image side of my brain.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sam</title>
		<link>http://www.dailydoseofexcel.com/archives/2007/03/06/useful-utilities/#comment-22709</link>
		<dc:creator>sam</dc:creator>
		<pubDate>Thu, 08 Mar 2007 16:19:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1618#comment-22709</guid>
		<description>&lt;p&gt;I have a set of growing utilities called MyTools...lots of small stuff collected/built over the years... a few very useful shortcut keys as well...&lt;/p&gt;
&lt;p&gt;Some of the buttons are&lt;br&gt;
- Format filter (filter on cell format)&lt;br&gt;
- Copy unique/Paste Unique&lt;br&gt;
- Higligth / Delete Duplicates&lt;br&gt;
- Text Tools - Toggle case/Proper Case/Text 2 Numbers/Numbers to Text/Trim All&lt;br&gt;
- Comment Tools - Send cell data to comments/Comment Data to Cell/Aling Comment&lt;br&gt;
- Graph Paper - Convert cells in to Square - like on a graph paper - say 0.5 cms&lt;br&gt;
- Extend to last row/column&lt;br&gt;
- Paste Excat formula&lt;br&gt;
- Dynami Range Tools - Dynamic Rows/Columns/Table + Dynamic Rows with Blanks/Dynamic Columns with Blanks&lt;br&gt;
- Toggle calulation mode&lt;br&gt;
- Merge to Cell&lt;br&gt;
- Swap Cells&lt;br&gt;
- Delete Blank rows/Colums&lt;br&gt;
- Insert/Delete Alternate Rows/Columsn&lt;br&gt;
- Batch Printing utilit&lt;br&gt;
- Delete Hyperlinks&lt;/p&gt;
&lt;p&gt;Some of the custom shortcut keys are&lt;br&gt;
- Ctrl+l - Toggle filter&lt;br&gt;
- Ctrl+j - Show all&lt;br&gt;
- Ctrl+q - List sheets&lt;br&gt;
- Ctrl+m - Make formulas in to values&lt;br&gt;
- Ctrl+t - Go to Top sheet in a file&lt;br&gt;
- Ctrl+e - Go to End sheet in a file&lt;br&gt;
- Ctrl+shift+l - Paste Exact Formula&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I have a set of growing utilities called MyTools&#8230;lots of small stuff collected/built over the years&#8230; a few very useful shortcut keys as well&#8230;</p>
<p>Some of the buttons are<br />
- Format filter (filter on cell format)<br />
- Copy unique/Paste Unique<br />
- Higligth / Delete Duplicates<br />
- Text Tools &#8211; Toggle case/Proper Case/Text 2 Numbers/Numbers to Text/Trim All<br />
- Comment Tools &#8211; Send cell data to comments/Comment Data to Cell/Aling Comment<br />
- Graph Paper &#8211; Convert cells in to Square &#8211; like on a graph paper &#8211; say 0.5 cms<br />
- Extend to last row/column<br />
- Paste Excat formula<br />
- Dynami Range Tools &#8211; Dynamic Rows/Columns/Table + Dynamic Rows with Blanks/Dynamic Columns with Blanks<br />
- Toggle calulation mode<br />
- Merge to Cell<br />
- Swap Cells<br />
- Delete Blank rows/Colums<br />
- Insert/Delete Alternate Rows/Columsn<br />
- Batch Printing utilit<br />
- Delete Hyperlinks</p>
<p>Some of the custom shortcut keys are<br />
- Ctrl+l &#8211; Toggle filter<br />
- Ctrl+j &#8211; Show all<br />
- Ctrl+q &#8211; List sheets<br />
- Ctrl+m &#8211; Make formulas in to values<br />
- Ctrl+t &#8211; Go to Top sheet in a file<br />
- Ctrl+e &#8211; Go to End sheet in a file<br />
- Ctrl+shift+l &#8211; Paste Exact Formula</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Harald Staff</title>
		<link>http://www.dailydoseofexcel.com/archives/2007/03/06/useful-utilities/#comment-22706</link>
		<dc:creator>Harald Staff</dc:creator>
		<pubDate>Thu, 08 Mar 2007 10:57:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1618#comment-22706</guid>
		<description>&lt;p&gt;I have lots of tools in various xla files (no Personal.xls). Most often used, descending order:&lt;/p&gt;
&lt;p&gt;- Reset Excel (calculation automatic, mousepointer default, enable selection, statusbar false, ...)&lt;br&gt;
- Fill selection with random text or letters or numbers or dates (userform ui)&lt;br&gt;
- Lock/unlock/hide/show selected sheets (userform ui)&lt;br&gt;
- Clean cell content in selection (remove spaces, replace formulas with values, remove non-numbers, upper/lower/proper, ... userform ui)&lt;br&gt;
- Filter assistant; switch autofiler criteria based on active cell content (also/instead/all) with save and recall for filter settings. (userform ui)&lt;br&gt;
- Copy column widht / row height&lt;br&gt;
- Selection to html&lt;br&gt;
- Close and kill all unsaved workbooks (&quot;Book14? not saved as anything)&lt;br&gt;
- Close activeworkbook and send to recycle bin if saved as file&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I have lots of tools in various xla files (no Personal.xls). Most often used, descending order:</p>
<p>- Reset Excel (calculation automatic, mousepointer default, enable selection, statusbar false, &#8230;)<br />
- Fill selection with random text or letters or numbers or dates (userform ui)<br />
- Lock/unlock/hide/show selected sheets (userform ui)<br />
- Clean cell content in selection (remove spaces, replace formulas with values, remove non-numbers, upper/lower/proper, &#8230; userform ui)<br />
- Filter assistant; switch autofiler criteria based on active cell content (also/instead/all) with save and recall for filter settings. (userform ui)<br />
- Copy column widht / row height<br />
- Selection to html<br />
- Close and kill all unsaved workbooks (&#8220;Book14? not saved as anything)<br />
- Close activeworkbook and send to recycle bin if saved as file</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex J</title>
		<link>http://www.dailydoseofexcel.com/archives/2007/03/06/useful-utilities/#comment-22704</link>
		<dc:creator>Alex J</dc:creator>
		<pubDate>Thu, 08 Mar 2007 05:37:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1618#comment-22704</guid>
		<description>&lt;p&gt;Oops - forgot to mention a modified version of Rob van Gelder&#039;s Conditional Format Maager (posted on DDOE) which I adapted to do Data Validation Management as well. (See Dick, we DO use the posted code! :-))&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Oops &#8211; forgot to mention a modified version of Rob van Gelder&#8217;s Conditional Format Maager (posted on DDOE) which I adapted to do Data Validation Management as well. (See Dick, we DO use the posted code! <img src='http://www.dailydoseofexcel.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> )</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex J</title>
		<link>http://www.dailydoseofexcel.com/archives/2007/03/06/useful-utilities/#comment-22703</link>
		<dc:creator>Alex J</dc:creator>
		<pubDate>Thu, 08 Mar 2007 05:23:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1618#comment-22703</guid>
		<description>&lt;p&gt;I&#039;ve got lots of goodies as well, many of which have been already mentioned above.&lt;br&gt;
My favories (that have not already been mentioned) are:&lt;br&gt;
- Buttons to toggle full commandbars off and on - like Audit, VBA and a couple personal compilations&lt;br&gt;
- Toggle Gridlines, Column &amp; Row Headers and Outlines with one button&lt;br&gt;
- Set Outline levels to 1, 2, or 3 (etc) with one button&lt;br&gt;
- a version of Find Name In Range from Rob Bovey&#039;s Excel Utilities which I adapted to allow selection of the found range&lt;br&gt;
- a Unique Filter macro which uses Advanced Filter to produce just the unique names in a list to an adjacent column&lt;br&gt;
- a macro to invoke the character map&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I&#8217;ve got lots of goodies as well, many of which have been already mentioned above.<br />
My favories (that have not already been mentioned) are:<br />
- Buttons to toggle full commandbars off and on &#8211; like Audit, VBA and a couple personal compilations<br />
- Toggle Gridlines, Column &amp; Row Headers and Outlines with one button<br />
- Set Outline levels to 1, 2, or 3 (etc) with one button<br />
- a version of Find Name In Range from Rob Bovey&#8217;s Excel Utilities which I adapted to allow selection of the found range<br />
- a Unique Filter macro which uses Advanced Filter to produce just the unique names in a list to an adjacent column<br />
- a macro to invoke the character map</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: fzz</title>
		<link>http://www.dailydoseofexcel.com/archives/2007/03/06/useful-utilities/#comment-22702</link>
		<dc:creator>fzz</dc:creator>
		<pubDate>Thu, 08 Mar 2007 02:05:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1618#comment-22702</guid>
		<description>&lt;p&gt;Falling in love with an ftp macro? There were ftp scripts back in DARPA Net times. Does the macro upload image files embedded in workbooks?&lt;/p&gt;
&lt;p&gt;I haven&#039;t fallen in love with my macros, but I have 3 I use a lot: swap formulas and notes in each cell in the selected range, replace initial = with &#124;=, replace initial &#124;= with =. Another I use less often concatenates the contents (.Text) of all cells in the selected range into the active cell. Last one worth mentioning prints name definitions, cell formulas (R1C1), formatting strings and all VBA modules for entire active workbook, basically a text file dump of an XLS file. Now if I&#039;d only get around to writing a macro that could create XLS files from the text dumps...&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Falling in love with an ftp macro? There were ftp scripts back in DARPA Net times. Does the macro upload image files embedded in workbooks?</p>
<p>I haven&#8217;t fallen in love with my macros, but I have 3 I use a lot: swap formulas and notes in each cell in the selected range, replace initial = with |=, replace initial |= with =. Another I use less often concatenates the contents (.Text) of all cells in the selected range into the active cell. Last one worth mentioning prints name definitions, cell formulas (R1C1), formatting strings and all VBA modules for entire active workbook, basically a text file dump of an XLS file. Now if I&#8217;d only get around to writing a macro that could create XLS files from the text dumps&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jon Peltier</title>
		<link>http://www.dailydoseofexcel.com/archives/2007/03/06/useful-utilities/#comment-22700</link>
		<dc:creator>Jon Peltier</dc:creator>
		<pubDate>Wed, 07 Mar 2007 23:08:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1618#comment-22700</guid>
		<description>&lt;p&gt;Mike -&lt;/p&gt;
&lt;p&gt;I have a guy who wants his workbook dumped into PowerPoint, with a twist or two. He wants the sheets inserted as Excel worksheet objects. He also wants multipage worksheets to be split among multiple slides which means a lot of deleting rows above and below the rows which should be visible on the slide. He already has a function that exports the worksheets into an archival workbook in which all formulas and links have been converted to values. Some of the sheets are just not amenable to a PowerPoint view, but I haven&#039;t been able to convince him otherwise. Even mentioning the hours it will take to code a sheet splitting algorithm have not deterred him.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Mike -</p>
<p>I have a guy who wants his workbook dumped into PowerPoint, with a twist or two. He wants the sheets inserted as Excel worksheet objects. He also wants multipage worksheets to be split among multiple slides which means a lot of deleting rows above and below the rows which should be visible on the slide. He already has a function that exports the worksheets into an archival workbook in which all formulas and links have been converted to values. Some of the sheets are just not amenable to a PowerPoint view, but I haven&#8217;t been able to convince him otherwise. Even mentioning the hours it will take to code a sheet splitting algorithm have not deterred him.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Alexander</title>
		<link>http://www.dailydoseofexcel.com/archives/2007/03/06/useful-utilities/#comment-22694</link>
		<dc:creator>Mike Alexander</dc:creator>
		<pubDate>Wed, 07 Mar 2007 17:39:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1618#comment-22694</guid>
		<description>&lt;p&gt;There are a few macros that that I use all the time, but most are too specific to be useful outside the enivronment in which I&#039;m working.  However, one is pretty useful that I use all the time.  It&#039;s based on Peltier&#039;s technique of copying chart pictures to powerpoint.  In fact, it&#039;s so useful, I included it as an example in &quot;Excel and Access Integration&quot; (http://www.datapigtechnologies.com/Books_eai2007.html)&lt;/p&gt;
&lt;p&gt;This code copies each worksheet in a workbook as a picture into a new powerpoint presentation.  The idea here is that I can build a workbook in such a way that it mimics a PowerPoint presentation; the workbook is the presentation itself and each worksheet becomes a slide in the presentation.   Once I do that, you can easily convert that workbook into an actual PowerPoint presentation using a bit of automation. This allows me to create presentations that I can update by simply refreshing the data in my workbook.&lt;/p&gt;
&lt;p&gt;Sub WorkbooktoPowerPoint()&lt;/p&gt;
&lt;p&gt;&#039;Step 1:  Declare your variables&lt;br&gt;
    Dim pp As PowerPoint.Application&lt;br&gt;
    Dim PPPres As PowerPoint.Presentation&lt;br&gt;
    Dim PPSlide As PowerPoint.Slide&lt;br&gt;
    Dim xlwksht As Excel.Worksheet&lt;br&gt;
    Dim MyRange As String&lt;br&gt;
    Dim MyTitle As String&lt;/p&gt;
&lt;p&gt;&#039;Step 2:  Open PowerPoint, add a new presentation and make visible&lt;br&gt;
    Set pp = New PowerPoint.Application&lt;br&gt;
    Set PPPres = pp.Presentations.Add&lt;br&gt;
    pp.Visible = True&lt;/p&gt;
&lt;p&gt;&#039;Step 3:  Set the range that includes your data and charts.&lt;br&gt;
         &#039;Ideally, each worksheet&#039;s content is encapsulated in the same range.&lt;br&gt;
         &#039;You could also dynamically determine the used range, but I&#039;m too lazy for that.&lt;br&gt;
    MyRange = &quot;A1:I27?&lt;/p&gt;
&lt;p&gt;&#039;Step 4:  Start the loop through each worksheet&lt;br&gt;
    For Each xlwksht In ActiveWorkbook.Worksheets&lt;br&gt;
    MyTitle = xlwksht.Range(&quot;C19?).Value&lt;/p&gt;
&lt;p&gt;&#039;Step 5:  Copy the range as picture&lt;br&gt;
    xlwksht.Range(MyRange).CopyPicture _&lt;br&gt;
    Appearance:=xlScreen, Format:=xlPicture&lt;/p&gt;
&lt;p&gt;&#039;Step 6:  Count slides and add new slide as next available slide number&lt;br&gt;
    SlideCount = PPPres.Slides.Count&lt;br&gt;
    Set PPSlide = PPPres.Slides.Add(SlideCount + 1, ppLayoutTitleOnly)&lt;br&gt;
    PPSlide.Select&lt;/p&gt;
&lt;p&gt;&#039;Step 7:  Paste the picture and adjust its position&lt;br&gt;
    PPSlide.Shapes.Paste.Select&lt;br&gt;
    pp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True&lt;br&gt;
    pp.ActiveWindow.Selection.ShapeRange.Top = 100&lt;/p&gt;
&lt;p&gt;&#039;Step 8:  Add the title to the slide then move to next worksheet&lt;br&gt;
    PPSlide.Shapes.Title.TextFrame.TextRange.Text = MyTitle&lt;br&gt;
    Next xlwksht&lt;/p&gt;
&lt;p&gt;&#039;Step 9:  Memory Cleanup&lt;br&gt;
    pp.Activate&lt;br&gt;
    Set PPSlide = Nothing&lt;br&gt;
    Set PPPres = Nothing&lt;br&gt;
    Set pp = Nothing&lt;/p&gt;
&lt;p&gt;End Sub&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>There are a few macros that that I use all the time, but most are too specific to be useful outside the enivronment in which I&#8217;m working.  However, one is pretty useful that I use all the time.  It&#8217;s based on Peltier&#8217;s technique of copying chart pictures to powerpoint.  In fact, it&#8217;s so useful, I included it as an example in &#8220;Excel and Access Integration&#8221; (<a href="http://www.datapigtechnologies.com/Books_eai2007.html" rel="nofollow">http://www.datapigtechnologies.com/Books_eai2007.html</a>)</p>
<p>This code copies each worksheet in a workbook as a picture into a new powerpoint presentation.  The idea here is that I can build a workbook in such a way that it mimics a PowerPoint presentation; the workbook is the presentation itself and each worksheet becomes a slide in the presentation.   Once I do that, you can easily convert that workbook into an actual PowerPoint presentation using a bit of automation. This allows me to create presentations that I can update by simply refreshing the data in my workbook.</p>
<p>Sub WorkbooktoPowerPoint()</p>
<p>&#8216;Step 1:  Declare your variables<br />
    Dim pp As PowerPoint.Application<br />
    Dim PPPres As PowerPoint.Presentation<br />
    Dim PPSlide As PowerPoint.Slide<br />
    Dim xlwksht As Excel.Worksheet<br />
    Dim MyRange As String<br />
    Dim MyTitle As String</p>
<p>&#8216;Step 2:  Open PowerPoint, add a new presentation and make visible<br />
    Set pp = New PowerPoint.Application<br />
    Set PPPres = pp.Presentations.Add<br />
    pp.Visible = True</p>
<p>&#8216;Step 3:  Set the range that includes your data and charts.<br />
         &#8216;Ideally, each worksheet&#8217;s content is encapsulated in the same range.<br />
         &#8216;You could also dynamically determine the used range, but I&#8217;m too lazy for that.<br />
    MyRange = &#8220;A1:I27?</p>
<p>&#8216;Step 4:  Start the loop through each worksheet<br />
    For Each xlwksht In ActiveWorkbook.Worksheets<br />
    MyTitle = xlwksht.Range(&#8220;C19?).Value</p>
<p>&#8216;Step 5:  Copy the range as picture<br />
    xlwksht.Range(MyRange).CopyPicture _<br />
    Appearance:=xlScreen, Format:=xlPicture</p>
<p>&#8216;Step 6:  Count slides and add new slide as next available slide number<br />
    SlideCount = PPPres.Slides.Count<br />
    Set PPSlide = PPPres.Slides.Add(SlideCount + 1, ppLayoutTitleOnly)<br />
    PPSlide.Select</p>
<p>&#8216;Step 7:  Paste the picture and adjust its position<br />
    PPSlide.Shapes.Paste.Select<br />
    pp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True<br />
    pp.ActiveWindow.Selection.ShapeRange.Top = 100</p>
<p>&#8216;Step 8:  Add the title to the slide then move to next worksheet<br />
    PPSlide.Shapes.Title.TextFrame.TextRange.Text = MyTitle<br />
    Next xlwksht</p>
<p>&#8216;Step 9:  Memory Cleanup<br />
    pp.Activate<br />
    Set PPSlide = Nothing<br />
    Set PPPres = Nothing<br />
    Set pp = Nothing</p>
<p>End Sub</p>
]]></content:encoded>
	</item>
</channel>
</rss>

