<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Sven's Blog : General</title><link>http://www.adduxis.com/blogs/blogs/sven/archive/category/1000.aspx</link><description>Posts not belonging in any other category.</description><dc:language>en-US</dc:language><generator>CommunityServer 1.0 (Build: 1.0.0.50218)</generator><item><title>Logging on as Administrator is a bad idea...</title><link>http://www.adduxis.com/blogs/blogs/sven/archive/2009/03/03/26.aspx</link><pubDate>Tue, 03 Mar 2009 19:37:00 GMT</pubDate><guid isPermaLink="false">7e3856d2-7138-48af-b2f2-33d7340af43e:26</guid><dc:creator>SvenAelterman</dc:creator><slash:comments>0</slash:comments><description>For your day-to-day activities, that is. The blog post below points this out one more time:&lt;br&gt;&lt;a href="http://kurtsh.spaces.live.com/Blog/cns%21DA410C7F7E038D%214812.entry?wa=wsignin1.0&amp;amp;sa=912559077"&gt;NEWS: “Removing end user admin rights eliminates 92% of vulnerabilities"&lt;/a&gt;&lt;br&gt;This advice holds independent of operating system, version, etc.&lt;br&gt;I do believe though that Vista's User Account Control (UAC) provides significant security and usability benefits by allowing people to easily provide administrative credentials or elevation of privilege to selected processes.&lt;br&gt;</description></item><item><title>Blog is still alive, although on life support</title><link>http://www.adduxis.com/blogs/blogs/sven/archive/2006/06/05/17.aspx</link><pubDate>Mon, 05 Jun 2006 20:47:00 GMT</pubDate><guid isPermaLink="false">7e3856d2-7138-48af-b2f2-33d7340af43e:17</guid><dc:creator>SvenAelterman</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;I couldn't blame anyone for thinking that this blog is dead. However, it's not. I could come up with scores of excuses as to why I haven't posted anything, but that won't serve any valuable purpose.&lt;/P&gt;
&lt;P&gt;Rather, I'd like to write something about the subjects I can post about, namely&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;The betas of Windows Vista and Office 2007.&lt;BR&gt;&lt;/STRONG&gt;I've installed them both, and I am gradually learning the differences and the exciting new features. Many pundits always claim that upgrades such as these have very little to offer in terms of business value. While I believe that they often make good points, I also think that for true "Information Workers" (I don't like that term very much...), the differences between Office 95 and Office 2007 are certainly significant. I am using such a big timespan to illustrate that over an 11-year period, there are significant advances in software. If each individual upgrade didn't provide benefits, where did these combined advances come from?&lt;BR&gt;Office 2007's new user interface is radically different. My first experiences with it are positive. I've been used many of the advanced features of Outlook and Word (Excel somewhat less) for many years now. Naturally, I was apprehensive about this new interface. I was afraid that I wouldn't be able to find the commands I was looking for anymore. Good news on that front: everything is right where I would expect it to be. The first time using a command, it might take perhaps a second or two, but the new interface grows on me quickly. Whether or not novice users will now actually be able to find and use the advanced features more easily remains to be seen. I suspect that they might. 
&lt;LI&gt;&lt;STRONG&gt;Visual Studio 2005 and SQL Server 2005&lt;/STRONG&gt;&lt;BR&gt;They have been available for several months now, of course. If you've read my blog before, you'll know that I've been developing applications using Visual Studio 2005 for quite some time. Visual Studio is not without its problems (Service Pack, please...), but I believe that Microsoft is committed to fixing some of the problems they introduced (witness thereof the new Web Application Project and Web Deployment Project templates). 
&lt;LI&gt;&lt;STRONG&gt;Atlas&lt;/STRONG&gt;&lt;BR&gt;I don't buy into the Web 2.0 etc. hype. But, AJAX does offer benefits. I've been developing an application that requires a form to be completed in a number of steps; and within each step, the web server has to provide more data based on user selections. While regular ASP.NET can handle that just fine, refreshing&amp;nbsp;entire (complex!) web pages versus just a few of the elements on&amp;nbsp;them is very different. The user experience is enhanced significantly by allowing a page to be partially refreshed. Speed is one factor. I know the form inside out, and I can complete it in about 60 seconds with AJAX. It takes over 2 minutes if AJAX is not enabled. The difference: the web server response time.&lt;BR&gt;I don't recommend site designs that do not ever navigate to a new web page, because there are certainly many issues with that approach, including manageability and accessibility. 
&lt;LI&gt;&lt;STRONG&gt;VOIP&lt;/STRONG&gt;&lt;BR&gt;I recently switched to&amp;nbsp;Voice over IP at home and in the office.&amp;nbsp;I am impressed with the quality, the features and the price. However, using cable modem connections at both locations highlights one important point: Using QoS (Quality of Service) is absolutely necessary. Backups at the office are done over the Internet to a remote site, and these uploads take up most/all of the available uplink bandwidth. Having a phone conversation at the same time is impossible without bandwidth management.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;I hope to be writing about these subjects more soon.&lt;/P&gt;
&lt;P&gt;Sven Aelterman.&lt;/P&gt;</description></item><item><title>Alabama Code Camp: Great Event</title><link>http://www.adduxis.com/blogs/blogs/sven/archive/2005/10/30/13.aspx</link><pubDate>Sun, 30 Oct 2005 21:06:00 GMT</pubDate><guid isPermaLink="false">7e3856d2-7138-48af-b2f2-33d7340af43e:13</guid><dc:creator>SvenAelterman</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;The &lt;A href="http://www.alabamacodecamp.com"&gt;Alabama Code Camp&lt;/A&gt; last Saturday was, from my perspective, a success. I thought that attendance was high and the quality of the sessions I attended good to very high. Thanks to the sponsors for enabling this (including a "free lunch").&lt;/P&gt;
&lt;P&gt;The only side of the event I liked less was the venue. Computer classrooms are not the best places to sit and watch demonstrations. Also, the building is a complete maze and there are no pointers whatsoever to help you find a particular room number.&lt;/P&gt;
&lt;P&gt;I believe people who came to my presentation were satisfied. Unfortunately, one hour was not nearly enough to show what I really wanted to show. My &lt;a href="http://www.adduxis.com/Downloads/CodeCamp2005/Slides.pdf"&gt;slides&lt;/A&gt; and the &lt;a href="http://www.adduxis.com/Downloads/CodeCamp2005/WSE2.zip"&gt;code for WSE 2.0&lt;/A&gt; have been posted. I am working on an issue with one of the demos in WSE 3.0, but expect those files to be posted soon. I need to mention that the idea for Demo 2 in my presentation was obtained from &lt;A href="http://spaces.msn.com/members/staceyw/blog/cns!1pnsZpX0fPvDxLKC6rAAhLsQ!273.entry?txtName=SA"&gt;William Stacey's blog&lt;/A&gt;.&lt;/P&gt;
&lt;H4&gt;Security Gaffe&lt;/H4&gt;
&lt;P&gt;One thing that is nearly as funny as &lt;A href="http://storage.msn.com/x1pmAkndzHuOfdE9TFALb22J0i_sfXl2qnHgzv0WKE8x-oStnlPDsSBJwhGU26lhf5Cbkup1JKSF5sdLkJn53Es3-Dd9ERaS4L8"&gt;this&lt;/A&gt;, is a poster I noticed at the Virginia College, Palisades II campus (where the Code Camp was held). The poster was meant to inform their students of the availability of a virtual library. As such, it was posted at the main entrance. Unfortunately, the poster included not only the URL to the virtual library, but also the password...&lt;/P&gt;
&lt;P&gt;I wonder why they even bother to have a password then?&amp;nbsp;(Note that I didn't actually try this out, and it's possible that the virtual library is only accessible through their student portal site, which probably requires a separate logon. Still, it makes no sense to have a secondary password then.)&lt;/P&gt;</description></item><item><title>An improved Microsoft Excel color banding solution</title><link>http://www.adduxis.com/blogs/blogs/sven/archive/2005/10/05/12.aspx</link><pubDate>Wed, 05 Oct 2005 21:36:00 GMT</pubDate><guid isPermaLink="false">7e3856d2-7138-48af-b2f2-33d7340af43e:12</guid><dc:creator>SvenAelterman</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;Today, someone asked me if it was possible to make Excel highlight the column and the row of the cell that is selected. Excel already highlights the column and row header, but when working on a high-resolution screen, that does not help much in ensuring that you are actually entering data in the right cell.&lt;/P&gt;
&lt;P&gt;I set out to find a solution, and on the Microsoft Office Assistance site, I found [1]. While this certainly works, it has a major drawback: any conditional formatting that is applied to &lt;STRONG&gt;any&lt;/STRONG&gt; cell in your worksheet is lost. The worksheet for which this solution was needed didn't actually have any conditional formatting, but I figured that that might change and users would probably never figure out why their conditional formatting was always lost.&lt;/P&gt;
&lt;P&gt;The problem with the solution at [1] is that it indiscriminately removes all conditional formatting in the worksheet. I figured that a better solution can be found if you merely keep track of the previously highlighted area. That way, you only need to undo the conditional formatting the macro applied, rather than all of it. In addition, the macro can be improved even further by only removing the conditional formatting that actually matches the conditional formatting it previously set. In other words, only delete the conditional formatting if the formula and the expression matches what the macro itself applies. &lt;/P&gt;
&lt;P&gt;That conditional formatting is very simple, by the way. It merely applies a background color (which is guaranteed to be different from any background color&amp;nbsp;the cell already has and from the font color in the cell) if the formula "TRUE" is True, which it always is, of course.&lt;/P&gt;
&lt;P&gt;An additional improvement I made is that the last "banding" is removed before the workbook is closed. That way, when you open the workbook next time, there are no oddly highlighted cells. If that would happen anyway, the solution is simple of course: just put the cursor cell that was selected before the workbook was saved and then move it away from that cell.&lt;/P&gt;
&lt;P&gt;Here's the VBA code that achieves this. Just copy and paste it in your workbook's &lt;STRONG&gt;ThisWorkbook&lt;/STRONG&gt; VBA code.&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;Option Explicit&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;Private LastTarget As Range&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;Private Sub Workbook_BeforeClose(Cancel As Boolean)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UndoBanding LastTarget&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;End Sub&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal target As Range)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Undo last target band coloring&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UndoBanding LastTarget&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Save the current target as the last target&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set LastTarget = target&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Band color the current target&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DoBanding target&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;End Sub&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;Private Sub UndoBanding(ByVal target As Range)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim c As Range&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim CurrentRow As Integer, CurrentColumn As Integer&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim i As Integer&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (Not target Is Nothing) Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Undo in the actual target cell(s)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (target.Cells.Count = 1) Then&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; UnBandCell target&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&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; UnBandCell target.Cells(1, 1)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Un-highlight the same column's cells above&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CurrentRow = target.Cells(1, 1).Row&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CurrentColumn = target.Cells(1, 1).Column&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For i = CurrentRow - 1 To 1 Step -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; UnBandCell target.Worksheet.Cells(i, CurrentColumn)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next i&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Un-highlight the same row's cells to the left&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' TODO: How about other cultures? (R-t-L)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For i = CurrentColumn - 1 To 1 Step -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; UnBandCell target.Worksheet.Cells(CurrentRow, i)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next i&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;End Sub&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;Private Sub DoBanding(ByVal target As Range)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim HighlightColor As Variant&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim c As Range&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim CurrentRow As Integer, CurrentColumn As Integer&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim i As Integer&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (Not target Is Nothing) Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HighlightColor = target.Interior.ColorIndex&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Ensure that a proper color is selected&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (HighlightColor &amp;lt; 0) Then&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; ' The default is light blue&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; HighlightColor = 37&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&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; ' Add 1 to the color index of the current cell&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; HighlightColor = HighlightColor + 1&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Highlight the actual target cells&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (target.Cells.Count = 1) Then&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; BandCell target, HighlightColor&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&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; BandCell target.Cells(1, 1), HighlightColor&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Highlight the same column's cells above&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CurrentRow = target.Cells(1, 1).Row&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CurrentColumn = target.Cells(1, 1).Column&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For i = CurrentRow - 1 To 1 Step -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; BandCell target.Worksheet.Cells(i, CurrentColumn), HighlightColor&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next i&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Highlight the same row's cells to the left&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' TODO: How about other cultures? (R-t-L)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For i = CurrentColumn - 1 To 1 Step -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; BandCell target.Worksheet.Cells(CurrentRow, i), HighlightColor&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next i&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;End Sub&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;Private Sub UnBandCell(ByVal cell As Range)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim fc As FormatCondition&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (Not cell Is Nothing) Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' If this cell has any conditional formatting at all&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (cell.FormatConditions.Count &amp;gt; 0) Then&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; ' Find the conditional formatting this macro applied&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; For Each fc In cell.FormatConditions&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' This is based on the formula and the expression type&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Note: in the very unlikely case that someone actually has a use for&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' this conditional formatting, it would be deleted also&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (fc.Formula1 = "TRUE" And fc.Type = 2) Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fc.Delete&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&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; Next&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;End Sub&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;Private Sub BandCell(ByVal cell As Range, ByVal color As Variant)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Ensure that the cell's background color is not the same as the color about to be applied&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (color = cell.Interior.color) Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; color = color + 1&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Ensure that the cell's font color is not the same as the color about to be applied&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (color = cell.Font.color) Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; color = color + 1&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' If there are no conditional formattings applied yet&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (cell.FormatConditions.Count = 0) Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Apply it&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cell.FormatConditions.Add xlExpression, , "TRUE"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cell.FormatConditions(1).Interior.ColorIndex = color&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;End Sub&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Not all is well with this solution. Because four loops have to be executed and conditional formatting is applied on a cell-by-cell basis, slower machines may experience a delay, especially the further away from the A:1 cell the cursor is positioned. Also, if it would so happen that all cells that would be highlighted by this macro already have conditional formatting applied, not a single cell will be highlighted. Of course, this does not cause any harm, but then again, the macro doesn't do anything to make the spreadsheet easier to use either.&lt;/P&gt;
&lt;P&gt;[1]: &lt;A href="http://office.microsoft.com/en-us/assistance/HA011366231033.aspx"&gt;http://office.microsoft.com/en-us/assistance/HA011366231033.aspx&lt;/A&gt;&lt;/P&gt;</description></item><item><title>Spam control</title><link>http://www.adduxis.com/blogs/blogs/sven/archive/2005/03/23/3.aspx</link><pubDate>Wed, 23 Mar 2005 18:45:00 GMT</pubDate><guid isPermaLink="false">7e3856d2-7138-48af-b2f2-33d7340af43e:3</guid><dc:creator>SvenAelterman</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;I just read &lt;A href="http://news.bbc.co.uk/1/hi/technology/4375601.stm"&gt;an article&lt;/A&gt; on the &lt;A href="http://www.bbc.co.uk"&gt;BBC News web site&lt;/A&gt; that deals with spam and how users's "bad" behavior sustains it.&lt;/P&gt;
&lt;P&gt;As I am sure everyone does&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;I hate spam. It is counterproductive, gives the companies involved a bad name, and is a waste of costly bandwidth. 
&lt;LI&gt;I receive spam. About 40%-60% of messages daily are spam.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Here's what I do to combat spam. Not all of these measures will be appropriate for everyone.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Use several e-mail addresses.&lt;/STRONG&gt; That's an easy one. If you have to fill out a form online to get something or to register on a site, use&amp;nbsp;a different e-mail account than the one you use for work or personal purposes. That way, if the address ends up in the wrong hands, they can only send messages to that address. You could get a (second?) Hotmail, Yahoo!, etc. account for that purpose.. 
&lt;LI&gt;&lt;STRONG&gt;Don't put your e-mail address in newsgroup posts, blog posts etc.&lt;/STRONG&gt;&lt;BR&gt;If you really have to, scramble it. So, &lt;A href="mailto:someone@somedomain.com"&gt;someone@somedomain.com&lt;/A&gt; could become someone_AT_somedomain.nospam.com. A human reader can interpret this, automated bots may have some issues with it. Although I think it won't be long (if it hasn't already happened) before automated bots (that scour the Internet for e-mail addresses) can reconstitute those e-mail addresses too. 
&lt;LI&gt;&lt;STRONG&gt;Use anti-spam tools.&lt;/STRONG&gt; Personally, I use a free tool called &lt;A href="http://www.spampal.org"&gt;SpamPal&lt;/A&gt;. It is free, easy to use, and actually offers the ability to install plug-ins. Using such plug-ins (most of which are free and available from the SpamPal site), you can highly customize SpamPal's behavior. I get about 1 in 100 false positives and 1 in 100 false negatives. In other words, 1 in 100 messages are not flagged as spam while they should be and 1 in 100 are flagged as spam while they shouldn't be. I am not sure what the average ratio is, but to me, that sounds really good. 
&lt;LI&gt;&lt;STRONG&gt;Create e-mail aliases.&lt;/STRONG&gt;&lt;BR&gt;If you have your own domain name (like I have aelterman.com), host your e-mail with a host that offers unlimited e-mail aliases (one such host is &lt;A href="http://www.directnic.com"&gt;DirectNIC&lt;/A&gt;). Why? Because then you can create an alias for each company you do business with. If your domain is somedomain.com, and you buy things from Amazon.com, create an alias &lt;A href="mailto:amazon@somedomain.com"&gt;amazon@somedomain.com&lt;/A&gt;. This has two advantages. First, if the e-mail address gets abused, you just delete the alias and you will no longer be receiving messages on that address. (if the site is legitimate, change your address in your profile of course). Secondly, it makes it&amp;nbsp;easy to find out who the source of the spam is. If you all of a sudden start getting junk mail at &lt;A href="mailto:amazon@somedomain.com"&gt;amazon@somedomain.com&lt;/A&gt;, you know it has to be Amazon who leaked your address (whether intentionally or not). 
&lt;LI&gt;&lt;STRONG&gt;Never ever click on&amp;nbsp;a link in a spam message.&lt;/STRONG&gt; 
&lt;LI&gt;&lt;STRONG&gt;Never ever buy anything through a spam message.&lt;/STRONG&gt; Apparently, according the BBC article, &lt;EM&gt;&lt;STRONG&gt;10% of recipients actually do that&lt;/STRONG&gt;&lt;/EM&gt;.&lt;BR&gt;If you do receive a message that markets&amp;nbsp;a product of interest to you, go to the company's web site by typing in their address or by using &lt;A href="http://www.google.com"&gt;Google&lt;/A&gt; (or better yet, use &lt;A href="http://www.a9.com"&gt;A9&lt;/A&gt;, Amazon's search engine to get discounts at Amazon.com) to find out what it is. The reason for this is that the links in spam e-mail messages contain references. Those references are then used for two purposes: 
&lt;UL&gt;
&lt;LI&gt;To validate your e-mail address. If you click on the link, the spammer knows that that e-mail address is valid and in use. 
&lt;LI&gt;To get paid. The more clicks and/or sales&amp;nbsp;spammers generate, the more they get paid. If no one clicks on the links, no one gets paid.&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;So, use your common sense (how often do you buy something from someone who shows up unannounced at your doorstep?) and just delete the spam messages.&lt;/P&gt;
&lt;P&gt;I look forward to comments on this post to find out how you combat the increasing amount of junk mail. Last note: there might be&amp;nbsp;some good news, the ratio of spam messages to real messages actually declined&amp;nbsp;&amp;nbsp;in February 2005 from the record high of somewhere in the 80%-range in January 2005. I am not sure if we just all started sending more valuable messages or if the amount of spam really decreased. &lt;/P&gt;
&lt;P&gt;Hope this helps,&lt;/P&gt;
&lt;P&gt;Sven.&lt;/P&gt;</description></item><item><title>A blog, a real blog, finally...</title><link>http://www.adduxis.com/blogs/blogs/sven/archive/2005/03/22/1.aspx</link><pubDate>Wed, 23 Mar 2005 02:32:00 GMT</pubDate><guid isPermaLink="false">7e3856d2-7138-48af-b2f2-33d7340af43e:1</guid><dc:creator>SvenAelterman</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;Hello everyone, and welcome to my first blog and my first blog post.&lt;/P&gt;
&lt;P&gt;I have decided to join the &lt;EM&gt;blogosphere&lt;/EM&gt; to share some insights gained through my work as a management and IT consultant. &lt;/P&gt;
&lt;P&gt;To find out more about the company I work for, visit http://www.adduxis.com. &lt;/P&gt;
&lt;P&gt;Some ground rules: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;I can't promise&amp;nbsp;that I will post on a regular basis. However, when I will post, I promise it will be checked for spelling and grammar mistakes (please do tell me if you find one) and that it will be well-researched.&lt;BR&gt;Whether or not it is interesting is up to you to decide. 
&lt;LI&gt;Comments and trackbacks are allowed, but subject to censorship and review. Inappropriate comments will not make it to the list. I moderate all comments. 
&lt;LI&gt;I love feedback, but won't be able answer personal e-mails and inquiries. Use the blog comments to leave me a message regarding the topic in that post. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Finally, I would like to thank to people at &lt;A href="http://www.telligent.com"&gt;Telligent Systems&lt;/A&gt; for creating Community Server, the software product that is used to run this blog and community site. They did a great job!&lt;/P&gt;
&lt;P&gt;I hope you will enjoy reading my material. &lt;/P&gt;
&lt;P&gt;Sven. &lt;BR&gt;&lt;/P&gt;</description></item></channel></rss>