<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1928376702114455780</id><updated>2012-02-10T12:29:23.961-08:00</updated><category term='Offset'/><category term='Text Size'/><category term='Connection Pooling'/><category term='Excel VBA'/><category term='Word 2003 Formatting'/><category term='FSO'/><category term='Break Links'/><category term='Oracle DAL'/><category term='Office Service Pack 2'/><category term='LINQ Query'/><category term='Combobox'/><category term='Excel Function Sum Product'/><category term='Create Search Engine'/><category term='Loop Files'/><category term='Remove Duplicates'/><category term='Powerpoint 2007'/><category term='Copy Worksheets'/><category term='Visual Studio Color List'/><category term='Manipulating the Date Columns in a Pivot'/><category term='Extended Properties'/><category term='Tagging'/><category term='Removing Column'/><category term='Chart Events'/><category term='WPF And Predicates'/><category term='Reading and writing in a TextFile from VBA'/><category term='User Control'/><category term='Search Images with Tags'/><category term='Move Code'/><category term='Hex Codes'/><category term='Grouping Items'/><category term='Adding/Deleting Series'/><category term='Dynamic Charts'/><category term='Creating Custom Menus in Power Point'/><category term='Dot Net'/><category term='File System Object'/><category term='Listview'/><category term='Service Pack 2'/><category term='Releasing COM Objects'/><category term='With Events'/><category term='Dictionary'/><category term='Workbook'/><category term='Loop through all the files'/><category term='Listview Item'/><category term='Excel 2007'/><category term='Tab Item'/><category term='Runtime Proxy'/><category term='Range'/><category term='Read Image Tags'/><category term='Scripting.Runtime'/><category term='Display User control in a Task Pane'/><category term='Creating Custom Menus in Excel through VBA'/><category term='Listview Selection Binding'/><category term='Display Images in Listview'/><category term='WPF Calendar Control'/><category term='Listview Item Background'/><category term='WPF Styles'/><category term='Format Cell'/><category term='Image Metadata Tags'/><category term='Restricting changing non blank cells'/><category term='Interop'/><category term='VBA'/><category term='Adding an item in Right Click Menu.'/><category term='Date Picker'/><category term='Name Ranges'/><category term='Chart.Activate() Event'/><category term='Background Color'/><category term='Copy'/><category term='AutoComplete Combobox'/><category term='Control+F'/><category term='Listview Checkbox'/><category term='Listview Group'/><category term='Creating Excel Menu from C#.net 2003'/><category term='Utility Functions.'/><category term='Search Files'/><category term='Dynamic Name Ranges'/><category term='VB.Net'/><category term='Excel Selection Type'/><category term='IDTExtensibility2 Interface'/><category term='Column'/><category term='Font Size'/><category term='Read Image Metadata tags'/><category term='Optional Parameters'/><category term='Create and register ADDin to Use in Excel'/><category term='Excel'/><category term='Button Style'/><category term='Office Solutions'/><category term='WPF Ajax Style Autocomplete Textbox'/><category term='Ribbon Gallery'/><category term='search items'/><category term='External Links'/><category term='Button'/><category term='WPF Effects'/><category term='Calendar'/><category term='Color Sorting in Excel'/><category term='Intellectual Property'/><category term='Date'/><category term='Protection'/><category term='Combobox Style'/><category term='Pivot Tables'/><category term='Color List'/><category term='Encryption'/><category term='Oracle'/><category term='Custom Functions'/><category term='Tags'/><category term='Worksheet'/><category term='Google Toolbar'/><category term='Themes'/><category term='VSTO'/><category term='Move Worksheets'/><category term='Charts'/><category term='File'/><category term='Gridview'/><category term='WPF Fish Eye Effect'/><category term='Group Styles'/><category term='Fish Eye Effect'/><category term='Combobox Template'/><category term='Move'/><category term='Autocomplete textbox'/><category term='Obfuscation'/><category term='Office 2007'/><category term='WPF Themes'/><category term='Autocomplete'/><category term='Animation'/><category term='DAL'/><category term='Duplicates'/><category term='Range Find'/><category term='Image Tagging'/><category term='Double Animation'/><category term='Tag'/><category term='Storyboard'/><category term='Move VBA Code'/><category term='Unlock cells'/><category term='Linking Pivot Tables'/><category term='Task Pane'/><category term='SCRRUN.dll'/><category term='Column header'/><category term='Moving Code from Another'/><category term='File Properties'/><category term='Last Cell'/><category term='Bugs Removed in SP2'/><category term='Tab Item Style'/><category term='COM'/><category term='Excel Arrays'/><category term='Protected Sheet'/><category term='Filter List'/><category term='WPF Listview'/><category term='GridviewColumnHeader'/><category term='MS Office SP2'/><category term='Fetching data from Oracle quickly with no Time'/><category term='Find values'/><category term='Fish Eye effect for Images'/><category term='C#'/><category term='Customizing Listview'/><category term='Special Cells'/><category term='Adding Reference'/><category term='Snippet'/><category term='Chart Engine Unlocked'/><category term='Range Manipulation'/><category term='Checkbox Binding'/><category term='WPF Tags'/><category term='Color Codes'/><category term='Colors'/><category term='Import data from a text file (ADO)'/><category term='Word 2003 Styles'/><category term='Free Excel EBook'/><category term='Calendar Control'/><category term='LINQs'/><category term='Ghost Instance'/><category term='Sheets'/><category term='WPF'/><category term='FishEye'/><category term='Valid Image Filtering'/><category term='Fish Eye'/><title type='text'>Excel Power</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>69</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-5351460796277162769</id><published>2012-02-06T23:56:00.000-08:00</published><updated>2012-02-07T00:01:53.540-08:00</updated><title type='text'>Loop through all the files in C# 2010</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;I migrated from VBA to C# a while back. Earlier, with VBA, I used to create Re-Cursive function to loop through all inner folders in a given folder. For example, if I have to search whole files in C: Drive, I will probably need to loop through Drive, then folders and subfolders in VBA. But in C#, you can simply give a parameter to search through the subdirectories as well. &lt;br /&gt;&lt;br /&gt;Code:&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;DirectoryInfo parent = new DirectoryInfo(@&amp;quot;C:\Vikas&amp;quot;);&lt;br /&gt;FileInfo[] files = parent.GetFiles(&amp;quot;*.*&amp;quot;, SearchOption.AllDirectories);&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The files array will contain all the files within the Folder "Vikas" and it's subfolder. &lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas B&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-5351460796277162769?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/5351460796277162769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=5351460796277162769&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/5351460796277162769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/5351460796277162769'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2012/02/loop-through-all-files-in-c-2010.html' title='Loop through all the files in C# 2010'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-6532347232039846472</id><published>2012-02-06T23:53:00.001-08:00</published><updated>2012-02-06T23:55:38.422-08:00</updated><title type='text'>Org Charts using Google docs</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;I was reading a thread in LinkedIn. Someone had asked if it is possible to create a ORG chart in Excel or not. I tried to google it and found a very interesting way to do it using Google Docs.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://chandoo.org/wp/2008/04/15/generate-organization-charts-in-excel-howto/"&gt;Create Org Chart using Google Docs/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Cheers!&lt;br /&gt;Vikas B&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-6532347232039846472?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/6532347232039846472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=6532347232039846472&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/6532347232039846472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/6532347232039846472'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2012/02/org-charts-using-google-docs.html' title='Org Charts using Google docs'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-2799755717586280416</id><published>2011-12-28T01:38:00.000-08:00</published><updated>2011-12-28T01:42:14.533-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DAL'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle DAL'/><title type='text'>ORACLE DAL in C#</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;We can easily find the Data Access Layer for SQL, but here is one which we created for Oracle. Hope it would help you all.&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;using System;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Data.SqlClient;&lt;br /&gt;using System.Configuration;&lt;br /&gt;&lt;br /&gt;using Demo.Common;&lt;br /&gt;&lt;br /&gt;namespace Demo.DataAccessLayer&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;    ////////////////////////////////////////////////////////////////////////////&lt;br /&gt;    /// &amp;lt;summary&amp;gt;&lt;br /&gt;    ///   Defines common DataService routines for transaction management, &lt;br /&gt;    ///   stored procedure execution, parameter creation, and null value &lt;br /&gt;    ///   checking&lt;br /&gt;    /// &amp;lt;/summary&amp;gt;    &lt;br /&gt;    ////////////////////////////////////////////////////////////////////////////&lt;br /&gt;    public class DataServiceBase&lt;br /&gt;    {&lt;br /&gt;&lt;br /&gt;        ////////////////////////////////////////////////////////////////////////&lt;br /&gt;        // Fields&lt;br /&gt;        ////////////////////////////////////////////////////////////////////////&lt;br /&gt;        private bool _isOwner = false;   //True if service owns the transaction        &lt;br /&gt;        private SqlTransaction _txn;     //Reference to the current transaction&lt;br /&gt;&lt;br /&gt;        ////////////////////////////////////////////////////////////////////////&lt;br /&gt;        // Properties &lt;br /&gt;        ////////////////////////////////////////////////////////////////////////&lt;br /&gt;        public IDbTransaction Txn&lt;br /&gt;        {&lt;br /&gt;            get { return (IDbTransaction)_txn; }&lt;br /&gt;            set { _txn = (SqlTransaction)value; }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        ////////////////////////////////////////////////////////////////////////&lt;br /&gt;        // Constructors&lt;br /&gt;        ////////////////////////////////////////////////////////////////////////&lt;br /&gt;&lt;br /&gt;        public DataServiceBase() : this(null) { }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        public DataServiceBase(IDbTransaction txn)&lt;br /&gt;        {&lt;br /&gt;            if (txn == null)&lt;br /&gt;                _isOwner = true;&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;                _txn = (SqlTransaction)txn;&lt;br /&gt;                _isOwner = false;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        ////////////////////////////////////////////////////////////////////////&lt;br /&gt;        // Connection and Transaction Methods&lt;br /&gt;        ////////////////////////////////////////////////////////////////////////&lt;br /&gt;        protected static string GetConnectionString()&lt;br /&gt;        {&lt;br /&gt;            return ConfigurationManager.ConnectionStrings[&amp;quot;DB&amp;quot;].ConnectionString;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        public static IDbTransaction BeginTransaction()&lt;br /&gt;        {&lt;br /&gt;            SqlConnection txnConnection =&lt;br /&gt;                new SqlConnection(GetConnectionString());&lt;br /&gt;            txnConnection.Open();&lt;br /&gt;            return txnConnection.BeginTransaction();            &lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        ////////////////////////////////////////////////////////////////////////&lt;br /&gt;        // ExecuteDataSet Methods&lt;br /&gt;        ////////////////////////////////////////////////////////////////////////&lt;br /&gt;        protected DataSet ExecuteDataSet(string procName,&lt;br /&gt;            params IDataParameter[] procParams)&lt;br /&gt;        {&lt;br /&gt;            SqlCommand cmd;&lt;br /&gt;            return ExecuteDataSet(out cmd, procName, procParams);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        protected DataSet ExecuteDataSet(out SqlCommand cmd, string procName,&lt;br /&gt;            params IDataParameter[] procParams)&lt;br /&gt;        {&lt;br /&gt;            SqlConnection cnx = null;&lt;br /&gt;            DataSet ds = new DataSet();&lt;br /&gt;            SqlDataAdapter da = new SqlDataAdapter();&lt;br /&gt;            cmd = null;&lt;br /&gt;&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                //Setup command object&lt;br /&gt;                cmd = new SqlCommand(procName);&lt;br /&gt;                cmd.CommandType = CommandType.StoredProcedure;&lt;br /&gt;                if (procParams != null)&lt;br /&gt;                    for (int index = 0; index &amp;lt; procParams.Length; index++)&lt;br /&gt;                        cmd.Parameters.Add(procParams[index]);&lt;br /&gt;&lt;br /&gt;                da.SelectCommand = (SqlCommand)cmd;&lt;br /&gt;&lt;br /&gt;                //Determine the transaction owner and process accordingly&lt;br /&gt;                if (_isOwner)&lt;br /&gt;                {&lt;br /&gt;                    cnx = new SqlConnection(GetConnectionString());&lt;br /&gt;                    cmd.Connection = cnx;&lt;br /&gt;                    cnx.Open();&lt;br /&gt;                }&lt;br /&gt;                else&lt;br /&gt;                {&lt;br /&gt;                    cmd.Connection = _txn.Connection;&lt;br /&gt;                    cmd.Transaction = _txn;&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                //Fill the dataset&lt;br /&gt;                da.Fill(ds);&lt;br /&gt;            }&lt;br /&gt;            catch&lt;br /&gt;            {&lt;br /&gt;                throw;&lt;br /&gt;            }&lt;br /&gt;            finally&lt;br /&gt;            {&lt;br /&gt;                if(da!=null) da.Dispose();&lt;br /&gt;                if(cmd!=null) cmd.Dispose();&lt;br /&gt;                if (_isOwner)&lt;br /&gt;                    cnx.Dispose(); //Implicitly calls cnx.Close()&lt;br /&gt;            }&lt;br /&gt;            return ds;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        ////////////////////////////////////////////////////////////////////////&lt;br /&gt;        // ExecuteNonQuery Methods&lt;br /&gt;        ////////////////////////////////////////////////////////////////////////&lt;br /&gt;        protected void ExecuteNonQuery(string procName,&lt;br /&gt;            params IDataParameter[] procParams)&lt;br /&gt;        {&lt;br /&gt;            SqlCommand cmd;&lt;br /&gt;            ExecuteNonQuery(out cmd, procName, procParams);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        protected void ExecuteNonQuery(out SqlCommand cmd, string procName,&lt;br /&gt;            params IDataParameter[] procParams)&lt;br /&gt;        {&lt;br /&gt;            //Method variables&lt;br /&gt;            SqlConnection cnx = null;&lt;br /&gt;            cmd = null;  //Avoids &amp;quot;Use of unassigned variable&amp;quot; compiler error&lt;br /&gt;&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                //Setup command object&lt;br /&gt;                cmd = new SqlCommand(procName);&lt;br /&gt;                cmd.CommandType = CommandType.StoredProcedure;&lt;br /&gt;                for (int index = 0; index &amp;lt; procParams.Length; index++)&lt;br /&gt;                    cmd.Parameters.Add(procParams[index]);&lt;br /&gt;&lt;br /&gt;                //Determine the transaction owner and process accordingly&lt;br /&gt;                if (_isOwner)&lt;br /&gt;                {&lt;br /&gt;                    cnx = new SqlConnection(GetConnectionString());&lt;br /&gt;                    cmd.Connection = cnx;&lt;br /&gt;                    cnx.Open();&lt;br /&gt;                }&lt;br /&gt;                else&lt;br /&gt;                {&lt;br /&gt;                    cmd.Connection = _txn.Connection;&lt;br /&gt;                    cmd.Transaction = _txn;&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                //Execute the command&lt;br /&gt;                cmd.ExecuteNonQuery();&lt;br /&gt;            }&lt;br /&gt;            catch&lt;br /&gt;            {&lt;br /&gt;                throw;&lt;br /&gt;            }&lt;br /&gt;            finally&lt;br /&gt;            {&lt;br /&gt;                if (_isOwner)&lt;br /&gt;                    cnx.Dispose(); //Implicitly calls cnx.Close()&lt;br /&gt;&lt;br /&gt;                if (cmd != null) cmd.Dispose();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        ////////////////////////////////////////////////////////////////////////&lt;br /&gt;        // CreateParameter Methods&lt;br /&gt;        ////////////////////////////////////////////////////////////////////////&lt;br /&gt;        protected SqlParameter CreateParameter(string paramName,&lt;br /&gt;            SqlDbType paramType, object paramValue)&lt;br /&gt;        {&lt;br /&gt;            SqlParameter param = new SqlParameter(paramName, paramType);&lt;br /&gt;            &lt;br /&gt;            if (paramValue != DBNull.Value)&lt;br /&gt;            {&lt;br /&gt;                switch (paramType)&lt;br /&gt;                {&lt;br /&gt;                    case SqlDbType.VarChar:&lt;br /&gt;                    case SqlDbType.NVarChar:&lt;br /&gt;                    case SqlDbType.Char:&lt;br /&gt;                    case SqlDbType.NChar:&lt;br /&gt;                    case SqlDbType.Text:&lt;br /&gt;                        paramValue = CheckParamValue((string)paramValue);&lt;br /&gt;                        break;&lt;br /&gt;                    case SqlDbType.DateTime:&lt;br /&gt;                        paramValue = CheckParamValue((DateTime)paramValue);&lt;br /&gt;                        break;&lt;br /&gt;                    case SqlDbType.Int:&lt;br /&gt;                        paramValue = CheckParamValue((int)paramValue);&lt;br /&gt;                        break;&lt;br /&gt;                    case SqlDbType.UniqueIdentifier:&lt;br /&gt;                        paramValue = CheckParamValue(GetGuid(paramValue));&lt;br /&gt;                        break;&lt;br /&gt;                    case SqlDbType.Bit:&lt;br /&gt;                        if (paramValue is bool) paramValue = (int)((bool)paramValue ? 1 : 0);&lt;br /&gt;                        if ((int)paramValue &amp;lt; 0 &amp;#124;&amp;#124; (int)paramValue &amp;gt; 1) paramValue = Constants.NullInt;&lt;br /&gt;                        paramValue = CheckParamValue((int)paramValue);&lt;br /&gt;                        break;&lt;br /&gt;                    case SqlDbType.Float:&lt;br /&gt;                        paramValue = CheckParamValue(Convert.ToSingle(paramValue));&lt;br /&gt;                        break;&lt;br /&gt;                    case SqlDbType.Decimal:&lt;br /&gt;                        paramValue = CheckParamValue((decimal)paramValue);&lt;br /&gt;                        break;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            param.Value = paramValue;&lt;br /&gt;            return param;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        protected SqlParameter CreateParameter(string paramName, SqlDbType paramType, ParameterDirection direction)&lt;br /&gt;        {&lt;br /&gt;            SqlParameter returnVal = CreateParameter(paramName, paramType, DBNull.Value);&lt;br /&gt;            returnVal.Direction = direction;&lt;br /&gt;            return returnVal;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        protected SqlParameter CreateParameter(string paramName, SqlDbType paramType, object paramValue, ParameterDirection direction)&lt;br /&gt;        {&lt;br /&gt;            SqlParameter returnVal = CreateParameter(paramName, paramType, paramValue);&lt;br /&gt;            returnVal.Direction = direction;&lt;br /&gt;            return returnVal;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        protected SqlParameter CreateParameter(string paramName, SqlDbType paramType, object paramValue, int size)&lt;br /&gt;        {&lt;br /&gt;            SqlParameter returnVal = CreateParameter(paramName, paramType, paramValue);&lt;br /&gt;            returnVal.Size = size;&lt;br /&gt;            return returnVal;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        protected SqlParameter CreateParameter(string paramName, SqlDbType paramType, object paramValue, int size, ParameterDirection direction)&lt;br /&gt;        {&lt;br /&gt;            SqlParameter returnVal = CreateParameter(paramName, paramType, paramValue);&lt;br /&gt;            returnVal.Direction = direction;&lt;br /&gt;            returnVal.Size = size;&lt;br /&gt;            return returnVal;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        protected SqlParameter CreateParameter(string paramName, SqlDbType paramType, object paramValue, int size, byte precision)&lt;br /&gt;        {&lt;br /&gt;            SqlParameter returnVal = CreateParameter(paramName, paramType, paramValue);&lt;br /&gt;            returnVal.Size = size;&lt;br /&gt;            ((SqlParameter)returnVal).Precision = precision;&lt;br /&gt;            return returnVal;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        protected SqlParameter CreateParameter(string paramName, SqlDbType paramType, object paramValue, int size, byte precision, ParameterDirection direction)&lt;br /&gt;        {&lt;br /&gt;            SqlParameter returnVal = CreateParameter(paramName, paramType, paramValue);&lt;br /&gt;            returnVal.Direction = direction;&lt;br /&gt;            returnVal.Size = size;&lt;br /&gt;            returnVal.Precision = precision;&lt;br /&gt;            return returnVal;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        ////////////////////////////////////////////////////////////////////////&lt;br /&gt;        // CheckParamValue Methods&lt;br /&gt;        ////////////////////////////////////////////////////////////////////////&lt;br /&gt;        protected Guid GetGuid(object value)&lt;br /&gt;        {&lt;br /&gt;            Guid returnVal = Constants.NullGuid;&lt;br /&gt;            if (value is string)&lt;br /&gt;                returnVal = new Guid((string)value);&lt;br /&gt;            else if (value is Guid)&lt;br /&gt;                returnVal = (Guid)value;&lt;br /&gt;&lt;br /&gt;            return returnVal;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        protected object CheckParamValue(string paramValue)&lt;br /&gt;        {&lt;br /&gt;            if (string.IsNullOrEmpty(paramValue))&lt;br /&gt;                return DBNull.Value;&lt;br /&gt;            else&lt;br /&gt;                return paramValue;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        protected object CheckParamValue(Guid paramValue)&lt;br /&gt;        {&lt;br /&gt;            if (paramValue.Equals(Constants.NullGuid))&lt;br /&gt;                return DBNull.Value;&lt;br /&gt;            else&lt;br /&gt;                return paramValue;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        protected object CheckParamValue(DateTime paramValue)&lt;br /&gt;        {&lt;br /&gt;            if (paramValue.Equals(Constants.NullDateTime))&lt;br /&gt;                return DBNull.Value;&lt;br /&gt;            else&lt;br /&gt;                return paramValue;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        protected object CheckParamValue(double paramValue)&lt;br /&gt;        {&lt;br /&gt;            if (paramValue.Equals(Constants.NullDouble))&lt;br /&gt;                return DBNull.Value;&lt;br /&gt;            else&lt;br /&gt;                return paramValue;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        protected object CheckParamValue(float paramValue)&lt;br /&gt;        {&lt;br /&gt;            if (paramValue.Equals(Constants.NullFloat))&lt;br /&gt;                return DBNull.Value;&lt;br /&gt;            else&lt;br /&gt;                return paramValue;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        protected object CheckParamValue(Decimal paramValue)&lt;br /&gt;        {&lt;br /&gt;            if (paramValue.Equals(Constants.NullDecimal))&lt;br /&gt;                return DBNull.Value;&lt;br /&gt;            else&lt;br /&gt;                return paramValue;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        protected object CheckParamValue(int paramValue)&lt;br /&gt;        {&lt;br /&gt;            if (paramValue.Equals(Constants.NullInt))&lt;br /&gt;                return DBNull.Value;                &lt;br /&gt;            else&lt;br /&gt;                return paramValue;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-2799755717586280416?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/2799755717586280416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=2799755717586280416&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/2799755717586280416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/2799755717586280416'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2011/12/oracle-dal-in-c.html' title='ORACLE DAL in C#'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-2371181004964587064</id><published>2011-12-28T01:30:00.000-08:00</published><updated>2011-12-28T01:34:26.398-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Tags'/><category scheme='http://www.blogger.com/atom/ns#' term='Extended Properties'/><category scheme='http://www.blogger.com/atom/ns#' term='File Properties'/><category scheme='http://www.blogger.com/atom/ns#' term='File'/><title type='text'>Reading File Tags in VB.Net</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;There are times when we add the tags to our files. We can use the Shell32 folder to read the tags. I found a little problematic for the first timer, so adding the code to read the tags here :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;br /&gt;    Sub TestTags()&lt;br /&gt;        Dim fInfo As New FileInfo("Path of your File goes here")&lt;br /&gt;        Dim tags As String = ReadFileAttributes(fInfo)&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Public Function ReadFileAttributes(fInfo As FileInfo) As String&lt;br /&gt;&lt;br /&gt;        Dim shell As New Shell32.Shell&lt;br /&gt;        Dim objFolder As Shell32.Folder&lt;br /&gt;        Dim items As Shell32.FolderItems&lt;br /&gt;        Try&lt;br /&gt;            objFolder = shell.NameSpace(fInfo.Directory.FullName)&lt;br /&gt;            items = objFolder.Items&lt;br /&gt;            Return objFolder.GetDetailsOf(items.Item(fInfo.Name), 18)&lt;br /&gt;        Catch ex As Exception&lt;br /&gt;            Return "Caught Exception in Tags" 'exception..cannot find the tags&lt;br /&gt;        End Try&lt;br /&gt;&lt;br /&gt;    End Function&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;.&lt;br /&gt;&lt;br /&gt;You have to add a reference to Microsoft Shell Controls and Automation from the COM tab of the Refences dialog.&lt;br /&gt;&lt;br /&gt;HTH,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-2371181004964587064?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/2371181004964587064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=2371181004964587064&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/2371181004964587064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/2371181004964587064'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2011/12/reading-file-tags-in-vbnet.html' title='Reading File Tags in VB.Net'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-3916724026273873316</id><published>2011-09-02T08:40:00.000-07:00</published><updated>2011-09-02T09:01:46.210-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCRRUN.dll'/><category scheme='http://www.blogger.com/atom/ns#' term='VBA'/><category scheme='http://www.blogger.com/atom/ns#' term='Adding Reference'/><category scheme='http://www.blogger.com/atom/ns#' term='FSO'/><category scheme='http://www.blogger.com/atom/ns#' term='Scripting.Runtime'/><title type='text'>How to Add a Reference in VBA Editor</title><content type='html'>&lt;br /&gt;Hi All!&lt;br /&gt;&lt;br /&gt;Although VBA edit does provide loads of libraries inherently, still, we may need to use few libraries which are not included by default. For example, For using Scripting.Dictionary object, or FileSystem object to search the fileSystem in an organized way, we need to add a reference to Microsoft.Scripting.Runtime. &lt;br /&gt;&lt;br /&gt;Adding a reference purely means to instruct the VBA Compiler/Editor to include the functionality of a particular library so that we can use the functions available in the added library.&lt;br /&gt;&lt;br /&gt;If you try to create a FileSystemObject, and write the following code:&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;Dim dictionary_ as Scripting.Dictionary&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;If we try to compile or run the code with out adding the reference it will show us the following error :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-4tULQXyYXHs/TmD81HLiKUI/AAAAAAAAAdo/psFCbG4_BAw/s1600/UserDefined.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 314px; height: 220px;" src="http://1.bp.blogspot.com/-4tULQXyYXHs/TmD81HLiKUI/AAAAAAAAAdo/psFCbG4_BAw/s320/UserDefined.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5647791922113292610" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Add the reference to Microsoft.Scripting.Runtime as shown in the picture below. Go to Tools --&gt; Reference --&gt; Look for Microsoft.Scripting.Runtime. If you are unable to find it in the options, then you will need to browse for scrrun.dll.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-zgtDec4uGQU/TmD9toGnX5I/AAAAAAAAAdw/TarkSCfOR2g/s1600/MicrosoftScriptingRuntim.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 257px;" src="http://4.bp.blogspot.com/-zgtDec4uGQU/TmD9toGnX5I/AAAAAAAAAdw/TarkSCfOR2g/s320/MicrosoftScriptingRuntim.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5647792893023707026" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-3916724026273873316?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/3916724026273873316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=3916724026273873316&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/3916724026273873316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/3916724026273873316'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2011/09/how-to-add-reference-in-vba-editor.html' title='How to Add a Reference in VBA Editor'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-4tULQXyYXHs/TmD81HLiKUI/AAAAAAAAAdo/psFCbG4_BAw/s72-c/UserDefined.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-8889966271514661093</id><published>2011-08-30T03:33:00.000-07:00</published><updated>2011-08-30T05:44:35.817-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VSTO'/><category scheme='http://www.blogger.com/atom/ns#' term='Interop'/><category scheme='http://www.blogger.com/atom/ns#' term='Encryption'/><category scheme='http://www.blogger.com/atom/ns#' term='COM'/><category scheme='http://www.blogger.com/atom/ns#' term='Obfuscation'/><category scheme='http://www.blogger.com/atom/ns#' term='Intellectual Property'/><title type='text'>Ever Wondered for Obfuscating VSTO .net Solutions? Here is the solution by Michael Zlatkovsky</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;I tried to obfuscate my VSTO COM code lots of time, but it never used to register the DLLs and Excel was never able to call my DLL successfully after Obfuscating. Although I have not tried it yet, but it seems we have got the solution :)&lt;br /&gt;&lt;br /&gt;This is posted from &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/81be6cc4-11a7-402a-97cf-8124405510e4"&gt;a MSDN Forum thread.&lt;/a&gt; It was posted by Michael Zlatkovsky and is very very useful. Please see what he had posted : &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;br /&gt;Just to report back:  after a few weeks of trying out various obfuscators, I finally did manage to obfuscate my VSTO project, both cheaply (only $179) and (now that I've got everything configured properly) painlessly. &lt;br /&gt;&lt;br /&gt;The obfuscator that I settled on is called .NET Reactor (http://www.eziriz.com/dotnet_reactor.htm).  It is VERY well-engineered piece of software, and costs remarkably little, $179 (compared to, say, Preemptive's Dotfuscator, which even after I emailed them and explained that I'm a freelance developer with little money, the best they could do is drop the price from ~$2000 to a "mere" $995).  Unlike some of the other obfuscators, .NET Reactor works with VSTO solutions, and, also very importantly, it integrates with Visual Studio to make the obfuscation process just part of the build/publish one-click process.  The importance of this integration is something you'll only discover when you need to obfuscate and sign assemblies manually -- which is a very tedious, 10-minute process of copying a file, obfuscating it, copying it back, re-signing the .dll.deploy file with MAGE, re-signing the .vsto file with MAGE, etc.&lt;br /&gt;&lt;br /&gt;.NET Reactor's chief developer, Denis Mierzwiak, was VERY helpful and available when I needed some help in configuring .NET Reactor for VSTO.  Initially my project was not lending itself to obfuscation, but Denis spent several hours with me on Skype to get things working, and kept sending me new releases by email as we continued to work out the kinks in the system.  The Obfuscation now works 100%, integrates beautifully into Visual Studio, and is completely painless -- I actually can't recall a time when I was more pleased with a software product or with the level of technical support!&lt;br /&gt;&lt;br /&gt;For those who'll be using .NET Reactor for VSTO, just a few hints:&lt;br /&gt;1) It might be that the latest changes to the .NET Reactor (introduced for better VSTO support and integration) are still not in the "official" release -- you might want to email support@eziriz.com to ask about obfuscating an Office solution and to get the latest version.&lt;br /&gt;&lt;br /&gt;2) It IS possible to fully obfuscate a VSTO solution (including renaming public types); since you are obfuscating a .dll file, however, that option is disabled by default.  To enable it, go to the Settings tab, option #2 (Protection Settings), Obfuscation, and select "obfuscate public types".&lt;br /&gt;&lt;br /&gt;3) Once you obfuscate public types, you will need to add a regular expression to EXCLUDE the several classes that VSTO expects (under .NET Reactor's settings -&gt; Protections Settings -&gt; Obfuscation -&gt; Exclusions -&gt; Regular Expressions).  In the case of an Excel spreadsheet, those would be ExcelSampleWorkbook\.Sheet1;ExcelSampleWorkbook\.Sheet2;ExcelSampleWorkbook\.Sheet3;ExcelSampleWorkbook\.ThisWorkbook&lt;br /&gt;&lt;br /&gt;4) Finally, if you obfuscate public types but exclude the required VSTO objects from obfuscation, be aware that code in those files (Sheet1, ThisWorkbook, etc) will obviously NOT be obfuscated.  In my case, I created a "HelperDelegate" for each of those classes (i.e., ThisWorkbookDelegate) to hide the code behind the delegate.  All that my Excel objects carry are event handlers (things like BeforeDoubleClick) and a reference to the delegate (so I can call Globals.ThisWorkbook.helper.myFunctionName())&lt;br /&gt;&lt;br /&gt;Hope my experience is useful!&lt;br /&gt;&lt;br /&gt;- Michael Zlatkovsky&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;HTH,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-8889966271514661093?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/8889966271514661093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=8889966271514661093&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/8889966271514661093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/8889966271514661093'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2011/08/ever-wondered-for-obfuscating-vsto-net.html' title='Ever Wondered for Obfuscating VSTO .net Solutions? Here is the solution by Michael Zlatkovsky'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-2023331966418952798</id><published>2011-08-26T07:02:00.000-07:00</published><updated>2011-08-26T07:12:13.600-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dictionary'/><category scheme='http://www.blogger.com/atom/ns#' term='VBA'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><category scheme='http://www.blogger.com/atom/ns#' term='Duplicates'/><category scheme='http://www.blogger.com/atom/ns#' term='Remove Duplicates'/><title type='text'>Removing Duplicates with in the worksheet</title><content type='html'>Hello All,&lt;br /&gt;&lt;br /&gt;I had asked by someone to create a code for removing a duplicate from worksheets.&lt;br /&gt;&lt;br /&gt;The requirement was such that one keyword should only appears once in Column B in all the worksheets. So if a value (for example "Data-1234") appears in sheet 1 in column B, then it cannot appear again in Column B, in any of the worksheets. If it appears, then move it to Duplicate sheet.&lt;br /&gt;&lt;br /&gt;So I used the following code. Thought it might be a help so posting it here. To make it work, you will need to add a reference to Microsoft Scripting Runtime.&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;&lt;br /&gt;Const ColumnToSearch As String = &amp;quot;B&amp;quot;&lt;br /&gt;Const ColumnToSearch_i As Integer = 2&lt;br /&gt;Private duplicates As Scripting.Dictionary&lt;br /&gt;&lt;br /&gt;Sub MoveDuplicates()&lt;br /&gt;&lt;br /&gt;    Dim blankCounter As Integer&lt;br /&gt;    Dim rowCounter As Long&lt;br /&gt;    Dim duplicate As Worksheet&lt;br /&gt;    Dim sht As Worksheet&lt;br /&gt;    Dim runLoop As Boolean&lt;br /&gt;    Dim value As String&lt;br /&gt;    Dim added As Boolean&lt;br /&gt;    Dim lastRow As Long&lt;br /&gt;    &lt;br /&gt;    runLoop = True&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    Set duplicates = New Scripting.Dictionary&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    Set duplicate = GetWorksheet(ActiveWorkbook, &amp;quot;DuplicateEntries&amp;quot;)&lt;br /&gt;    &lt;br /&gt;    If (duplicate Is Nothing) Then&lt;br /&gt;        Set duplicate = ActiveWorkbook.Worksheets.Add&lt;br /&gt;        duplicate.name = &amp;quot;DuplicateEntries&amp;quot;&lt;br /&gt;    End If&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    'get duplicate sheet&lt;br /&gt;    &lt;br /&gt;    For Each sht In ActiveWorkbook.Worksheets&lt;br /&gt;        &lt;br /&gt;        blankCounter = 1&lt;br /&gt;        rowCounter = 2&lt;br /&gt;        runLoop = True&lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;        If (sht.name &amp;lt;&amp;gt; &amp;quot;DuplicateEntries&amp;quot;) Then&lt;br /&gt;            &lt;br /&gt;            lastRow = GetLastRow(duplicate, 1)&lt;br /&gt;            &lt;br /&gt;            If (lastRow &amp;gt; 1) Then&lt;br /&gt;                lastRow = lastRow + 2&lt;br /&gt;            End If&lt;br /&gt;            &lt;br /&gt;            'enter the log&lt;br /&gt;            &lt;br /&gt;            duplicate.Range(&amp;quot;A&amp;quot; &amp;amp; lastRow).value = &amp;quot;Duplicate Entries Entered on : &amp;quot; &amp;amp; Now &amp;amp; &amp;quot; from Worksheet &amp;quot; &amp;amp; sht.name&lt;br /&gt;            duplicate.Range(&amp;quot;A&amp;quot; &amp;amp; lastRow + 1).value = &amp;quot;'-&amp;quot;&lt;br /&gt;            duplicate.Range(&amp;quot;A&amp;quot; &amp;amp; lastRow + 2).value = &amp;quot;'-&amp;quot;&lt;br /&gt;            &lt;br /&gt;            &lt;br /&gt;            &lt;br /&gt;            &lt;br /&gt;            While runLoop&lt;br /&gt;                If (blankCounter &amp;gt; 10) Then&lt;br /&gt;                    runLoop = False&lt;br /&gt;                Else&lt;br /&gt;                    'check blank&lt;br /&gt;                    &lt;br /&gt;                    value = Trim(sht.Cells(rowCounter, ColumnToSearch_i).value)&lt;br /&gt;                    &lt;br /&gt;                    &lt;br /&gt;                    If (value = &amp;quot;&amp;quot;) Then&lt;br /&gt;                        blankCounter = blankCounter + 1&lt;br /&gt;                    Else&lt;br /&gt;                        blankCounter = 1&lt;br /&gt;                        added = AddSuccess(value)&lt;br /&gt;                        lastRow = GetLastRow(duplicate, 1) + 1&lt;br /&gt;                        If (added) Then&lt;br /&gt;                             'dont do anything. not a duplicate&lt;br /&gt;                        Else&lt;br /&gt;                            'Duplicate item, Move&lt;br /&gt;                            MoveRow sht.Cells(rowCounter, ColumnToSearch_i), duplicate.Cells(lastRow, 1)&lt;br /&gt;                            rowCounter = rowCounter - 1&lt;br /&gt;                        End If&lt;br /&gt;                        &lt;br /&gt;                    End If&lt;br /&gt;                    &lt;br /&gt;                    &lt;br /&gt;                End If&lt;br /&gt;                &lt;br /&gt;                rowCounter = rowCounter + 1&lt;br /&gt;                &lt;br /&gt;            Wend&lt;br /&gt;        End If&lt;br /&gt;    Next sht&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Function GetLastRow(sht As Worksheet, Optional Col As Integer = 1) As Long&lt;br /&gt;    Dim rng As Range&lt;br /&gt;    &lt;br /&gt;    GetLastRow = sht.Cells(sht.Rows.Count - 1, Col).End(xlUp).Row&lt;br /&gt;    &lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Private Function GetWorksheet(wkb As Workbook, shtName As String) As Worksheet&lt;br /&gt;    Dim sht As Worksheet&lt;br /&gt;    &lt;br /&gt;    On Error Resume Next&lt;br /&gt;        Set GetWorksheet = wkb.Worksheets(shtName)&lt;br /&gt;    Err.Clear&lt;br /&gt;    &lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Private Sub MoveRow(rngToMove As Range, moveAt As Range)&lt;br /&gt;    rngToMove.EntireRow.Copy moveAt&lt;br /&gt;    rngToMove.EntireRow.Delete&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Function AddSuccess(name As String) As Boolean&lt;br /&gt;    Err.Clear&lt;br /&gt;    On Error Resume Next&lt;br /&gt;        duplicates.Add name, name&lt;br /&gt;            &lt;br /&gt;        If (Err.Description &amp;lt;&amp;gt; &amp;quot;&amp;quot;) Then&lt;br /&gt;            AddSuccess = False&lt;br /&gt;        Else&lt;br /&gt;            AddSuccess = True&lt;br /&gt;        End If&lt;br /&gt;            &lt;br /&gt;    Err.Clear&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;HTH, &lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-2023331966418952798?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/2023331966418952798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=2023331966418952798&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/2023331966418952798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/2023331966418952798'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2011/08/removing-duplicates-with-in-worksheet.html' title='Removing Duplicates with in the worksheet'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-7210091706734708902</id><published>2011-07-24T11:29:00.000-07:00</published><updated>2011-07-24T11:29:12.235-07:00</updated><title type='text'>Add-in Express discounts and special offers</title><content type='html'>&lt;a href="http://www.add-in-express.com/purchase/discounts.php"&gt;Add-in Express discounts and special offers&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-7210091706734708902?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.add-in-express.com/purchase/discounts.php' title='Add-in Express discounts and special offers'/><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/7210091706734708902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=7210091706734708902&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/7210091706734708902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/7210091706734708902'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2011/07/add-in-express-discounts-and-special.html' title='Add-in Express discounts and special offers'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-4001563933213184380</id><published>2010-09-06T02:41:00.000-07:00</published><updated>2010-09-06T03:03:07.762-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Control+F'/><category scheme='http://www.blogger.com/atom/ns#' term='Range'/><category scheme='http://www.blogger.com/atom/ns#' term='Range Find'/><category scheme='http://www.blogger.com/atom/ns#' term='Find values'/><category scheme='http://www.blogger.com/atom/ns#' term='Range Manipulation'/><category scheme='http://www.blogger.com/atom/ns#' term='Snippet'/><title type='text'>Excel VBA : Find data using Control+F and not looping</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;I was sitting and reading few posts and saw that lots of people tries to loop and find the data in different ranges. But it really becomes very very slow if the data you are looping at is huge. Also, what if probability of the occurrences of the desired string/value is very low. &lt;br /&gt;&lt;br /&gt;Lets take an example, if I am using approx 1 Million cells in a worksheet, and I am trying to find if a particular text "xysqhqhsyqhsn" is available in how many cells. Obviously, the probability is quite low, and even equal to nil that I will find this string at all in the whole worksheet. But to find, I will need to search first to ensure that the value doesn't exist in the worksheet or not. Now, which option which one would like to have, either to loop to all the 1 million cells or just to jump on the cells which contains the value? &lt;br /&gt;&lt;br /&gt;Obviously, in out case, we would like for the second option. I always do that. I always go for the second option to search the string in a worksheet, rather than looping through all the cells, a slow movement.&lt;br /&gt;&lt;br /&gt;I have shown an example here. In this example, first I take an input from the user, and tries to give a counter which signifies that the input string exists in how many cells. I have used a function &lt;span style="font-weight:bold;"&gt;"GetValidRanges"&lt;/span&gt; which would return a collection of cells, as shown below&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;Sub FindInstances()&lt;br /&gt;    Dim inputStr As String ' the variable to accept the input from user&lt;br /&gt;    Dim rngToFind As Range ' the range where we have to find&lt;br /&gt;    Dim activeSht As Worksheet&lt;br /&gt;    Dim cell As Range&lt;br /&gt;    Dim firstAddress As String&lt;br /&gt;    Dim txtCounter As String&lt;br /&gt;    Dim ranges As Collection&lt;br /&gt;    &lt;br /&gt;    'take the input of the string which we want to search.&lt;br /&gt;    &lt;br /&gt;    inputStr = InputBox(&amp;quot;Please enter the string which you want to search.&amp;quot;)&lt;br /&gt;    Set activeSht = ActiveSheet&lt;br /&gt;    Set rngToFind = activeSht.Range(&amp;quot;A1:A300&amp;quot;)&lt;br /&gt;    If (inputStr = &amp;quot;&amp;quot;) Then&lt;br /&gt;        MsgBox &amp;quot;Invalid Input&amp;quot;&lt;br /&gt;    Else&lt;br /&gt;        'there is a string to search&lt;br /&gt;        Set ranges = GetValidRanges(inputStr, rngToFind)&lt;br /&gt;        &lt;br /&gt;        MsgBox &amp;quot;Total number of occurrences are &amp;quot; &amp;amp; ranges.Count&lt;br /&gt;        &lt;br /&gt;    End If&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;'''this function loops through the cells in the range passed, and returns a collection of those cells (eventually range objects) which contains the passed values.&lt;br /&gt;&lt;br /&gt;Public Function GetValidRanges(inputStr As String, rngToSearch As Range) As Collection&lt;br /&gt;    Dim cell As Range&lt;br /&gt;    Dim firstAddress As String&lt;br /&gt;    Dim ranges As Collection&lt;br /&gt;    &lt;br /&gt;    Set ranges = New Collection&lt;br /&gt;    &lt;br /&gt;    With rngToSearch&lt;br /&gt;        Set cell = .Find(inputStr, LookIn:=xlValues)&lt;br /&gt;        &lt;br /&gt;        If Not cell Is Nothing Then&lt;br /&gt;            firstAddress = cell.Address&lt;br /&gt;            &lt;br /&gt;            Do&lt;br /&gt;                ranges.Add cell&lt;br /&gt;                Set cell = .FindNext(cell)&lt;br /&gt;            Loop While Not cell Is Nothing And cell.Address &amp;lt;&amp;gt; firstAddress&lt;br /&gt;        End If&lt;br /&gt;    End With&lt;br /&gt;    &lt;br /&gt;    Set GetValidRanges = ranges&lt;br /&gt;    &lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;User can easily use this collection in many ways. We can get the count of the total cells returned, or loop through all the items in the collection to get the actual address. &lt;br /&gt;&lt;br /&gt;Hope this helps :)&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-4001563933213184380?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/4001563933213184380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=4001563933213184380&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/4001563933213184380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/4001563933213184380'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2010/09/excel-vba-find-data-using-controlf-and.html' title='Excel VBA : Find data using Control+F and not looping'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-4712238592742836002</id><published>2010-08-03T07:53:00.000-07:00</published><updated>2010-08-16T09:10:36.511-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Offset'/><category scheme='http://www.blogger.com/atom/ns#' term='VBA'/><category scheme='http://www.blogger.com/atom/ns#' term='Name Ranges'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='Dynamic Name Ranges'/><title type='text'>Dynamic Named Ranges</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;I see a lot of time people ask that they cannot find the last row of the data. One of the most complicated scenario would be, to assign the dynamic source range to a chart. Suppose I have a chart and the number of rows in my chart would keep on changing time to time, so how would I manage this? One option is to use VBA code and assign a new source data whenever it is refreshed. But do we really need code behind to resolve this problem? I would say no :)&lt;br /&gt;&lt;br /&gt;Before going further, I would like to tell you about Offset function, which i will be using to explain the Dynamic named Ranges.&lt;br /&gt;&lt;br /&gt;Syntax of Offset function is : &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;OFFSET(reference,rows,cols,height,width)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Offset, in itself is a powerful function to design a dynamic range. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Parameter 1, Reference&lt;/span&gt; : This would be the starting point of your range. Offset function requires you to provide it a starting point, on which you will finally decide what range to be consider. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Parameter 2, Rows&lt;/span&gt; : This number is used to shift the starting point. Suppose if the Starting Point is A1, and the number of Rows (second parameter) is 2, then the starting point will be shifted by 2 rows and will point to A3.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Parameter 3, Cols&lt;/span&gt; : This number is used to shift the starting point by columns. Suppose if the Starting Point is A1, and the number of columns (third parameter) is 5, then the starting point will be shifted by 5 Columns and will point to F1.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Parameter 4, Height&lt;/span&gt; : This would represent the number of cells in a column, aka, the height of range. This can be assumed as the height dimension of a matrix.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Parameter 5, Width&lt;/span&gt; : This would represent the width of the range. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Examples&lt;/span&gt; :&lt;br /&gt;&lt;br /&gt;Offset($A$1,1,1,5,5) :  The range is $B$2:$F$6. &lt;br /&gt;&lt;br /&gt;Explanation : Starting point is $A$1. Second Parameter, shift row by 1 so It will point to $A$2. As per third Parameter, shift col by 1 so it will point for $B$2. Forth parameter says that the Height of the required range should be 5 cells. So it will be : $B$2:$B$6. The fifth and last parameter says that the width of the range should be 5 columns. So the final range would turn out to be $B$2:$F$6.&lt;br /&gt;&lt;br /&gt;Dynamic ranges can be very handy and useful in creating charts when the source range has to be dynamic and is of changing nature. For example, suppose if we have the following chart : &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_qXtQEx5SYuw/TGlExe7KCvI/AAAAAAAAAYQ/KolSYtY0UiA/s1600/Initial+Data.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 181px;" src="http://3.bp.blogspot.com/_qXtQEx5SYuw/TGlExe7KCvI/AAAAAAAAAYQ/KolSYtY0UiA/s400/Initial+Data.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5506007636342606578" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can see that we have a very simple chart, with the source data as $A$3:$B$11. However, the data can be of a changing nature. For example, see the following screenshot...the data is increased by 5 rows and the new source should be $A$3:$B$16. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qXtQEx5SYuw/TGlExidjWwI/AAAAAAAAAYY/DmVq1-KoxsU/s1600/SourceIncreased.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 204px;" src="http://1.bp.blogspot.com/_qXtQEx5SYuw/TGlExidjWwI/AAAAAAAAAYY/DmVq1-KoxsU/s400/SourceIncreased.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5506007637292178178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Rather than assigning the source data to chart again and again, we can create a Dynamic Named Range which can be flexible if the rows of our data are increased. Dynamic Named Ranges are nothing but a Name Range, with Offset Formula in its target range. &lt;br /&gt;&lt;br /&gt;The chart earlier had the series as $A$3:$B$11, if you see and edit the source data of chart, you will see two ranges. One is the Range for Series :- $B$4:$B$11 and X Series which is dates :- $A$4:$A$11. &lt;br /&gt;&lt;br /&gt;To create this, I would first create a X Range, which will point to the Date Column of our chart. It will certainly involve the Offset function. To get the dynamic range for Dates, I will start my Offset from $A$4, which is the start point. Setting up next two parameters as 0, 0 so that the starting point should not be changed. Since we have to calculate the rows on run time, so I will use CountA formula so that I can get the exact height of the data. CountA function returns the number of non blank cells in the specified range. Suppose I try CountA($A$4:$A$410) function on the data (as shown in the second image), it would return 13. Because in the entire range (A4:A410) there are only 13 non blank cells. Rest are Blank. Width would be one to ensure that we are talking about a single column(or we can say series or x series values). See the following screenshot : &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qXtQEx5SYuw/TGlHQ77NbTI/AAAAAAAAAYo/n5RfZgum_TU/s1600/XRange.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 223px;" src="http://4.bp.blogspot.com/_qXtQEx5SYuw/TGlHQ77NbTI/AAAAAAAAAYo/n5RfZgum_TU/s400/XRange.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5506010375726656818" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Similarly, I would create a SharePriceRange&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_qXtQEx5SYuw/TGlHQorMjiI/AAAAAAAAAYg/CDKKvvCkf4o/s1600/SharePriceRange.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 223px;" src="http://2.bp.blogspot.com/_qXtQEx5SYuw/TGlHQorMjiI/AAAAAAAAAYg/CDKKvvCkf4o/s400/SharePriceRange.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5506010370559217186" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After creating the dynamic named ranges, I will need to assign the name ranges to our chart. In our current chart, we have one series, and one x Series. That is why I have only used two dynamic named ranges. If we will have more series, then we will need to add as many named ranges equal to the number of series present in the chart.&lt;br /&gt;&lt;br /&gt;For assigning a named range, I will need to edit the source data. Following is the screenshot of two buttons which we may need to click in order to edit the appropriate series.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_qXtQEx5SYuw/TGlijv9IoCI/AAAAAAAAAZI/FTswQSnd59o/s1600/EditSource.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 279px;" src="http://2.bp.blogspot.com/_qXtQEx5SYuw/TGlijv9IoCI/AAAAAAAAAZI/FTswQSnd59o/s400/EditSource.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5506040385744969762" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The sheet which I am operating is Sheet2, so I will need to ensure that I have included the worksheet name along with the name range. See the two screenshots : &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qXtQEx5SYuw/TGlHRu0fdDI/AAAAAAAAAY4/uicndrEGkAQ/s1600/SharePriceChanged.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_qXtQEx5SYuw/TGlHRu0fdDI/AAAAAAAAAY4/uicndrEGkAQ/s400/SharePriceChanged.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5506010389388686386" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qXtQEx5SYuw/TGlHR4ztwDI/AAAAAAAAAZA/U7ljsb_q3H0/s1600/XRangeChanged.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_qXtQEx5SYuw/TGlHR4ztwDI/AAAAAAAAAZA/U7ljsb_q3H0/s400/XRangeChanged.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5506010392069783602" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I have created a sample spreadsheet to demonstrate it properly. To download the spreadsheet, please &lt;a href="http://dynamicnamedrange.codeplex.com/"&gt;Click here.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas Bhandari&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-4712238592742836002?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/4712238592742836002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=4712238592742836002&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/4712238592742836002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/4712238592742836002'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2010/08/dynamic-named-ranges.html' title='Dynamic Named Ranges'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qXtQEx5SYuw/TGlExe7KCvI/AAAAAAAAAYQ/KolSYtY0UiA/s72-c/Initial+Data.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-6373868732085756803</id><published>2010-07-09T08:32:00.000-07:00</published><updated>2010-07-09T08:38:26.926-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Moving Code from Another'/><category scheme='http://www.blogger.com/atom/ns#' term='VBA'/><category scheme='http://www.blogger.com/atom/ns#' term='Move VBA Code'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel VBA'/><category scheme='http://www.blogger.com/atom/ns#' term='Move Code'/><title type='text'>Move the Excel VBA Code from One Workbook to Another.</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;Recently, I wanted to move VBA Code from one workbook to another. I didn't have any idea. So my teammate did me a favor and got me the following code. So I thought that it is good to share it with the outside world. Moreover, it also moves the code with the Forms as well.&lt;br /&gt;&lt;br /&gt;The function expects two parameters,&lt;br /&gt;&lt;br /&gt;sourceBook: the workbook where we have to copy the code from&lt;br /&gt;destBook : the workbook where the code has to be copied to&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;Sub MoveVBACode(sourceBook As Workbook, destBook As Workbook)&lt;br /&gt;&lt;br /&gt;    Dim sourceVbComp As VBIDE.VBComponents&lt;br /&gt;    Dim destVbComp As VBIDE.VBComponents&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    Dim vbComp As VBComponent&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    'To check the code is protected or not&lt;br /&gt;    If sourceBook.VBProject.Protection = vbext_pp_locked Then&lt;br /&gt;        MsgBox &amp;quot;Can't copy code because Source project code is password protected&amp;quot;, vbInformation&lt;br /&gt;        Exit Sub&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;    Set sourceVbComp = sourceBook.VBProject.VBComponents&lt;br /&gt;    Set destVbComp = destBook.VBProject.VBComponents&lt;br /&gt;&lt;br /&gt;    'To copy the modules from source to destination&lt;br /&gt;    For Each vbComp In sourceVbComp&lt;br /&gt;        If vbComp.Type = vbext_ct_Document Then&lt;br /&gt;            CopyModule vbComp, destVbComp, &amp;quot;&amp;quot;&lt;br /&gt;        ElseIf vbComp.Type = vbext_ct_StdModule Then&lt;br /&gt;            CopyModule vbComp, destVbComp, &amp;quot;.bas&amp;quot;&lt;br /&gt;        ElseIf vbComp.Type = vbext_ct_MSForm Then&lt;br /&gt;            CopyModule vbComp, destVbComp, &amp;quot;.frm&amp;quot;&lt;br /&gt;        ElseIf vbComp.Type = vbext_ct_ClassModule Then&lt;br /&gt;            CopyModule vbComp, destVbComp, &amp;quot;.cls&amp;quot;&lt;br /&gt;        End If&lt;br /&gt;    Next&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Function CopyModule(sourceVbComp As VBIDE.VBComponent, _&lt;br /&gt;                    destVbComp As VBIDE.VBComponents, _&lt;br /&gt;                    extn As String)&lt;br /&gt;    &lt;br /&gt;Dim fName As String&lt;br /&gt;Dim vbComp As VBIDE.VBComponent&lt;br /&gt;Dim destCodeMod As VBIDE.CodeModule&lt;br /&gt;Dim codeText As String&lt;br /&gt;Dim destCodeModule As Variant&lt;br /&gt;Dim TempVBComp As Variant&lt;br /&gt;&lt;br /&gt;Const filePath As String = &amp;quot;C:\&amp;quot;&lt;br /&gt;Const xportPath As String = &amp;quot;C:\Temp\&amp;quot;&lt;br /&gt;    &lt;br /&gt;    fName = xportPath &amp;amp; sourceVbComp.Name &amp;amp; extn&lt;br /&gt;    &lt;br /&gt;    sourceVbComp.Export fName&lt;br /&gt;    &lt;br /&gt;    If sourceVbComp.Type = vbext_ct_Document Then&lt;br /&gt;    'To copy the code form ThisWorkbook and sheets&lt;br /&gt;        &lt;br /&gt;        'To get the code module in the destination file&lt;br /&gt;        For Each vbComp In destVbComp&lt;br /&gt;            If vbComp.Type = vbext_ct_Document And vbComp.Name = sourceVbComp.Name Then&lt;br /&gt;                Set destCodeModule = vbComp.CodeModule&lt;br /&gt;                Exit For&lt;br /&gt;            End If&lt;br /&gt;        Next&lt;br /&gt;        &lt;br /&gt;        'To update the code from source to destination&lt;br /&gt;        If Not destCodeModule = &amp;quot;&amp;quot; Then&lt;br /&gt;            Set TempVBComp = destVbComp.Import(fName)&lt;br /&gt;            With destCodeModule&lt;br /&gt;                If TempVBComp.CodeModule.CountOfLines &amp;gt; 0 Then&lt;br /&gt;                     codeText = TempVBComp.CodeModule.Lines(1, TempVBComp.CodeModule.CountOfLines)&lt;br /&gt;                    .InsertLines 1, codeText&lt;br /&gt;                End If&lt;br /&gt;            End With&lt;br /&gt;              destVbComp.Remove TempVBComp&lt;br /&gt;        End If&lt;br /&gt;        &lt;br /&gt;    Else ' For modules ,forms and classes&lt;br /&gt;        destVbComp.Import fName&lt;br /&gt;    End If&lt;br /&gt;        &lt;br /&gt;    'To kill the exported file&lt;br /&gt;    Kill fName&lt;br /&gt;&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-6373868732085756803?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/6373868732085756803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=6373868732085756803&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/6373868732085756803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/6373868732085756803'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2010/07/move-excel-vba-code-from-one-workbook.html' title='Move the Excel VBA Code from One Workbook to Another.'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-3002876468388759240</id><published>2010-07-09T08:24:00.000-07:00</published><updated>2010-07-09T08:29:24.160-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workbook'/><category scheme='http://www.blogger.com/atom/ns#' term='Worksheet'/><category scheme='http://www.blogger.com/atom/ns#' term='Copy Worksheets'/><category scheme='http://www.blogger.com/atom/ns#' term='Copy'/><category scheme='http://www.blogger.com/atom/ns#' term='Sheets'/><category scheme='http://www.blogger.com/atom/ns#' term='Move Worksheets'/><category scheme='http://www.blogger.com/atom/ns#' term='Move'/><title type='text'>Move all worksheets from a workbook to another</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;Ever moved all the worksheets from a workbook to another. I did it previously, so thought to share the code with you all. &lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;Public Sub CopyWorksheets(sourceBook As Workbook, destBook As Workbook)&lt;br /&gt;   &lt;br /&gt;    Dim shtCounter As Integer&lt;br /&gt;    Dim wkSheet As Worksheet&lt;br /&gt;    &lt;br /&gt;    'remove all the sheets from Destination workbook except one.&lt;br /&gt;    'the last worksheet will be deleted once we have copied the worksheets&lt;br /&gt;    &lt;br /&gt;    For shtCounter = destBook.Worksheets.Count To 2 Step -1&lt;br /&gt;        Set wkSheet = destBook.Worksheets(shtCounter)&lt;br /&gt;        Application.DisplayAlerts = False&lt;br /&gt;        wkSheet.Delete&lt;br /&gt;        Application.DisplayAlerts = True&lt;br /&gt;    Next shtCounter&lt;br /&gt;    &lt;br /&gt;    'rename the sheet1 so that we can assure there is no duplicity&lt;br /&gt;    &lt;br /&gt;    Set wkSheet = Worksheets(1)&lt;br /&gt;    &lt;br /&gt;    wkSheet.Name = &amp;quot;123111xSheet111789&amp;quot; 'giving some arbit name so that we can&lt;br /&gt;                                        ' assure that the sheets we are trying&lt;br /&gt;                                        'copy doesn't have the same name as the worksheet's name.&lt;br /&gt;    &lt;br /&gt;    'copy sheets to destWKB&lt;br /&gt;    &lt;br /&gt;    sourceBook.Worksheets.Copy after:=destBook.Worksheets(1)&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    Application.DisplayAlerts = False&lt;br /&gt;    wkSheet.Delete&lt;br /&gt;    Application.DisplayAlerts = True&lt;br /&gt;End Sub&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;HTH,&lt;br /&gt;Vikas Bhandari&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-3002876468388759240?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/3002876468388759240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=3002876468388759240&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/3002876468388759240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/3002876468388759240'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2010/07/move-all-worksheets-from-workbook-to.html' title='Move all worksheets from a workbook to another'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-3058538650382247689</id><published>2010-07-09T08:18:00.000-07:00</published><updated>2010-07-09T08:22:15.222-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Break Links'/><category scheme='http://www.blogger.com/atom/ns#' term='External Links'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel VBA'/><title type='text'>Excel - Break External Links</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;Please find below the code for Breaking the external links from a Workbook.&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;Public Sub BreakLinks()&lt;br /&gt;    Dim aLinks As Variant&lt;br /&gt;    Dim i As Integer&lt;br /&gt;    Dim sht As Worksheet&lt;br /&gt;    &lt;br /&gt;    aLinks = ActiveWorkbook.LinkSources(xlExcelLinks)&lt;br /&gt;    If Not IsEmpty(aLinks) Then&lt;br /&gt;        For i = 1 To UBound(aLinks)&lt;br /&gt;            ActiveWorkbook.BreakLink Name:=aLinks(i), Type:=xlExcelLinks&lt;br /&gt;        Next i&lt;br /&gt;    End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Hope this helps.&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-3058538650382247689?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/3058538650382247689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=3058538650382247689&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/3058538650382247689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/3058538650382247689'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2010/07/excel-break-external-links.html' title='Excel - Break External Links'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-2727291012844283162</id><published>2010-07-09T07:30:00.000-07:00</published><updated>2010-07-09T08:00:09.739-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Protection'/><category scheme='http://www.blogger.com/atom/ns#' term='Format Cell'/><category scheme='http://www.blogger.com/atom/ns#' term='VBA'/><category scheme='http://www.blogger.com/atom/ns#' term='Protected Sheet'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel VBA'/><category scheme='http://www.blogger.com/atom/ns#' term='Unlock cells'/><title type='text'>Allow User to Enter Data in a Protected Sheet</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;We know that we can protect a worksheet so that user should not able to touch any of values in cell. You can protect the sheet by going to Review Tab --&gt; Protect Sheet option. The option is shown in the following screenshot: &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qXtQEx5SYuw/TDc1DwvLUDI/AAAAAAAAAXo/_zTjlWVcn0s/s1600/ProtectMenu.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 158px;" src="http://4.bp.blogspot.com/_qXtQEx5SYuw/TDc1DwvLUDI/AAAAAAAAAXo/_zTjlWVcn0s/s200/ProtectMenu.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5491916609340264498" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is easy. But what if we want to allow user to enter data in some of the cells. Or if we want to open few of the cells to the user where he/she can enter his/her inputs. &lt;br /&gt;&lt;br /&gt;Protection on a worksheet works only for those cells which are Locked. By default, every cell in a worksheet is locked so when a user protects a worksheet, all of the cells are locked by default. Vice versa, if a cell is not locked then user can edit the data even if the worksheet is protected. So to allow few of the cells to be unlocked(so that these can remain unprotected), we first need to remove the locked option from the cells. Following are the steps given to achieve this :&lt;br /&gt;&lt;br /&gt;--&gt; Select the cell which you want to unlock&lt;br /&gt;--&gt; Right click on that cell and click on Format Cells. It is displayed in the following screenshot :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qXtQEx5SYuw/TDc2caMmuCI/AAAAAAAAAXw/zl1PAEq7P1A/s1600/FormatCellRightClick.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 198px; height: 255px;" src="http://1.bp.blogspot.com/_qXtQEx5SYuw/TDc2caMmuCI/AAAAAAAAAXw/zl1PAEq7P1A/s320/FormatCellRightClick.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5491918132298037282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;--&gt; Go to the protection Tab, and uncheck the "&lt;span style="font-weight:bold;"&gt;Locked"&lt;span style="font-style:italic;"&gt;&lt;/span&gt;&lt;/span&gt; option. See the following screenshot:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_qXtQEx5SYuw/TDc44O_kq5I/AAAAAAAAAX4/pEY_4erL27o/s1600/Locked.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 197px;" src="http://2.bp.blogspot.com/_qXtQEx5SYuw/TDc44O_kq5I/AAAAAAAAAX4/pEY_4erL27o/s200/Locked.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5491920809350179730" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you keep this option unchecked for a cell/range, the cell/range cannot be protected. So if you want to keep few of cells open for user in a protected sheet, you can use the above mentioned procedure.&lt;br /&gt;&lt;br /&gt;Hope this helps :)&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-2727291012844283162?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/2727291012844283162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=2727291012844283162&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/2727291012844283162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/2727291012844283162'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2010/07/allow-user-to-enter-data-in-protected.html' title='Allow User to Enter Data in a Protected Sheet'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_qXtQEx5SYuw/TDc1DwvLUDI/AAAAAAAAAXo/_zTjlWVcn0s/s72-c/ProtectMenu.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-1120094644727510945</id><published>2010-07-09T06:54:00.000-07:00</published><updated>2010-07-09T07:26:28.523-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Last Cell'/><category scheme='http://www.blogger.com/atom/ns#' term='VBA'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel VBA'/><category scheme='http://www.blogger.com/atom/ns#' term='Special Cells'/><title type='text'>Find Last Cell, Column And Row in Excel Worksheet</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;Please find below a small code snippet, which you can use to find the last Used Cell, Row or Column. &lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;Public Function LastUsedCell() As Range&lt;br /&gt;    Dim rng As Range&lt;br /&gt;    Dim activeSht As Worksheet&lt;br /&gt;    On Error GoTo ErrHandler&lt;br /&gt;    &lt;br /&gt;    Set activeSht = activeSheet&lt;br /&gt;&lt;br /&gt;    Set rng = activeSht.Range(&amp;quot;A1&amp;quot;).SpecialCells(xlCellTypeLastCell)&lt;br /&gt;    &lt;br /&gt;    'return value&lt;br /&gt;    Set LastUsedCell = rng&lt;br /&gt;    Exit Function&lt;br /&gt;ErrHandler:&lt;br /&gt;    Set LastUsedCell = Nothing&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Public Function LastUsedRow() As Long&lt;br /&gt;    Dim rng As Range&lt;br /&gt;    Dim activeSht As Worksheet&lt;br /&gt;    On Error GoTo ErrHandler&lt;br /&gt;    &lt;br /&gt;    Set activeSht = activeSheet&lt;br /&gt;&lt;br /&gt;    Set rng = activeSht.Range(&amp;quot;A1&amp;quot;).SpecialCells(xlCellTypeLastCell)&lt;br /&gt;    &lt;br /&gt;    'return value&lt;br /&gt;    LastUsedRow = rng.Row&lt;br /&gt;    Exit Function&lt;br /&gt;ErrHandler:&lt;br /&gt;    LastUsedRow = 0&lt;br /&gt;&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Public Function LastUsedColumn() As Integer&lt;br /&gt;    Dim rng As Range&lt;br /&gt;    Dim activeSht As Worksheet&lt;br /&gt;    On Error GoTo ErrHandler&lt;br /&gt;    &lt;br /&gt;    Set activeSht = activeSheet&lt;br /&gt;&lt;br /&gt;    Set rng = activeSht.Range(&amp;quot;A1&amp;quot;).SpecialCells(xlCellTypeLastCell)&lt;br /&gt;    &lt;br /&gt;    'return value&lt;br /&gt;    LastUsedColumn = rng.Column&lt;br /&gt;    Exit Function&lt;br /&gt;ErrHandler:&lt;br /&gt;    LastUsedColumn = 0&lt;br /&gt;&lt;br /&gt;End Function&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Hope this helps :)&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-1120094644727510945?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/1120094644727510945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=1120094644727510945&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/1120094644727510945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/1120094644727510945'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2010/07/find-last-cell-column-and-row-in-excel.html' title='Find Last Cell, Column And Row in Excel Worksheet'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-3087275562356261683</id><published>2010-07-01T04:55:00.000-07:00</published><updated>2010-07-09T03:30:22.559-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Loop through all the files'/><category scheme='http://www.blogger.com/atom/ns#' term='Loop Files'/><category scheme='http://www.blogger.com/atom/ns#' term='FSO'/><category scheme='http://www.blogger.com/atom/ns#' term='Search Files'/><category scheme='http://www.blogger.com/atom/ns#' term='File System Object'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel VBA'/><title type='text'>Excel VBA :  Loop through all the files and subfolders in a Folder</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;I write this function many many times in my projects. When we have to create a temporary folder which are specific to our application, then I normally have to loop through all the files in a folder and put some validations so that my code should not replace any previous temp or log files. So I thought to share a small snippet of Excel VBA code where I am trying to search all the files in a Folder ( and its subfolders too) and printing in an Excel Worksheet.&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;Private fileCounter As Integer&lt;br /&gt;Private activeSht As Worksheet&lt;br /&gt;'Display all the files in a folder. Searches all the sub folders.&lt;br /&gt;&lt;br /&gt;'Prints Folder Names in Column A and and the file Names in Column B&lt;br /&gt;&lt;br /&gt;Sub SearchFiles()&lt;br /&gt;    Dim pth As String&lt;br /&gt;    Dim fso As FileSystemObject&lt;br /&gt;    Dim baseFolder As Folder&lt;br /&gt;                    &lt;br /&gt;    pth = &amp;quot;C:\Projects\&amp;quot; 'the base path which has to be searched for Files&lt;br /&gt;    Set fso = New FileSystemObject&lt;br /&gt;                    &lt;br /&gt;    ''check if the folder actually exists or not&lt;br /&gt;                    &lt;br /&gt;    If (Not (fso.FolderExists(pth))) Then&lt;br /&gt;        'the folder path is invalid. Exiting.&lt;br /&gt;        MsgBox &amp;quot;Invalid Path&amp;quot;&lt;br /&gt;        Exit Sub&lt;br /&gt;    End If&lt;br /&gt;    &lt;br /&gt;    Set baseFolder = fso.GetFolder(pth)&lt;br /&gt;    &lt;br /&gt;    fileCounter = 1&lt;br /&gt;    Set activeSht = ActiveSheet&lt;br /&gt;    &lt;br /&gt;    activeSht.Range(&amp;quot;A1&amp;quot;).Value = &amp;quot;Folder Name&amp;quot;&lt;br /&gt;    activeSht.Range(&amp;quot;B1&amp;quot;).Value = &amp;quot;File Name&amp;quot;&lt;br /&gt;    &lt;br /&gt;    On Error GoTo ErrHandler&lt;br /&gt;    Application.ScreenUpdating = False&lt;br /&gt;    Application.Calculation = xlCalculationManual&lt;br /&gt;    PrintFileNames baseFolder&lt;br /&gt;    &lt;br /&gt;ErrHandler:&lt;br /&gt;    Application.ScreenUpdating = True&lt;br /&gt;    Application.Calculation = xlCalculationAutomatic&lt;br /&gt;End Sub&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;Sub PrintFileNames(baseFolder As Folder)&lt;br /&gt;    Dim folder_ As Folder&lt;br /&gt;    Dim file_ As File&lt;br /&gt;    &lt;br /&gt;    For Each folder_ In baseFolder.SubFolders&lt;br /&gt;        'call recursive function.&lt;br /&gt;        PrintFileNames folder_&lt;br /&gt;    Next folder_&lt;br /&gt;    &lt;br /&gt;    For Each file_ In baseFolder.Files&lt;br /&gt;        'print files here&lt;br /&gt;        activeSht.Range(&amp;quot;A1&amp;quot;).Offset(fileCounter, 0).Value = baseFolder.Path&lt;br /&gt;        activeSht.Range(&amp;quot;B1&amp;quot;).Offset(fileCounter, 0).Value = file_.Name&lt;br /&gt;        fileCounter = fileCounter + 1&lt;br /&gt;    Next file_&lt;br /&gt;End Sub&lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The above code loops through all the subfolders and the files in a given folder and prints the folder names in Column A and the file Names in Column B.&lt;br /&gt;&lt;br /&gt;HTH,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-3087275562356261683?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/3087275562356261683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=3087275562356261683&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/3087275562356261683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/3087275562356261683'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2010/07/excel-vba-loop-through-all-files-and.html' title='Excel VBA :  Loop through all the files and subfolders in a Folder'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-3162554187370607456</id><published>2010-07-01T04:01:00.000-07:00</published><updated>2010-07-09T03:43:42.223-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VBA'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><category scheme='http://www.blogger.com/atom/ns#' term='Custom Functions'/><title type='text'>Write Custom Functions in Excel.</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;We all know that we can write Formulas in Excel. for example, =Sum(A1:A10) to sum the values present in range from A1 to A10. The summation is easy. Right??? But what if we want to tweak our requirements. &lt;br /&gt;&lt;br /&gt;   Let's assume we have a requirement, that we need to sum only those values which are divisible by 2. I have assumed a very basic example, although we can write an Excel Built in for this requirement, but I want to show to achieve this through Custom Function.&lt;br /&gt;&lt;br /&gt;For example, I want to sum range A1 to A10. I will write a custom Function in Excel VBA. Open VBA editor, add Module 1 and add a function like following : &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   &lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;Public Function SumEvenValues(rng As Range) As Double&lt;br /&gt;    Dim sum As Double&lt;br /&gt;    Dim cell_ As Range&lt;br /&gt;    &lt;br /&gt;    sum = 0&lt;br /&gt;    &lt;br /&gt;    For Each cell_ In rng.Cells&lt;br /&gt;        If (IsNumeric(cell_.Value)) Then&lt;br /&gt;            'the value is numeric. Check the mod&lt;br /&gt;            If (cell_.Value Mod 2 = 0) Then&lt;br /&gt;                sum = sum + cell_.Value&lt;br /&gt;            End If&lt;br /&gt;        End If&lt;br /&gt;    Next cell_&lt;br /&gt;    &lt;br /&gt;    SumEvenValues = sum&lt;br /&gt;    &lt;br /&gt;End Function&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In your excel workbook, in Cell b1, type this : =SumEvenValues(A1:A10)&lt;br /&gt;&lt;br /&gt;You will see that all the values which are divisible by 2 are summed up and the result is displayed in Cell B1. I have taken a very basic example to show it's use, which can be easily achived in Excel, but we may encounter to include those requirements which we may not be able to achieve within Excel only. So in such a case, VBA is used to handle all those requirements which Excel cannot handle.&lt;br /&gt;&lt;br /&gt;HTH,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-3162554187370607456?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/3162554187370607456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=3162554187370607456&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/3162554187370607456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/3162554187370607456'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2010/07/write-custom-functions-in-excel.html' title='Write Custom Functions in Excel.'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-8068785461366348820</id><published>2010-04-14T02:11:00.001-07:00</published><updated>2010-07-09T03:51:44.248-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linking Pivot Tables'/><category scheme='http://www.blogger.com/atom/ns#' term='VBA'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='Pivot Tables'/><title type='text'>Linking Two Pivot Tables</title><content type='html'>Hi all,&lt;br /&gt;&lt;br /&gt;Recently, I was making a dashboard and I had to create two Pivot Tables. My conditional formatting was set in such a manner, that I needed to have both the pivot tables updated @ same time, and the items too, to be shown or hid @ the same time in both the pivot table. &lt;br /&gt;&lt;br /&gt;To achieve this, I first noted down the fields which I had to filter. I had three fields to filter and these items were Name, Date, and Month. So I had to make the following code :&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)&lt;br /&gt;'ExpectedHours&lt;br /&gt;&lt;br /&gt;If (Target.Name = "MainPivot") Then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Macro1&lt;br /&gt;End If&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;Sub Macro1()&lt;br /&gt;'&lt;br /&gt;&lt;br /&gt;'&lt;br /&gt;'On Error Resume Next&lt;br /&gt;'&lt;br /&gt;      Dim pivotSource As PivotTable&lt;br /&gt;      Dim pivotTarget As PivotTable&lt;br /&gt;      Dim sourceItem As PivotItem&lt;br /&gt;      Dim sourceField As PivotField&lt;br /&gt;      Dim targetItem As PivotItem&lt;br /&gt;      Dim targetField As PivotField&lt;br /&gt;      &lt;br /&gt;      Set pivotSource = Sheet7.PivotTables(&amp;quot;MainPivot&amp;quot;)&lt;br /&gt;      Set pivotTarget = Sheet7.PivotTables(&amp;quot;ExpectedHours&amp;quot;)&lt;br /&gt;      &lt;br /&gt;      &lt;br /&gt;    Set targetField = pivotTarget.PivotFields(&amp;quot;department&amp;quot;)&lt;br /&gt;   &lt;br /&gt;    targetField.ClearAllFilters&lt;br /&gt;    targetField.CurrentPage = Sheet7.Range(&amp;quot;Department&amp;quot;).Value&lt;br /&gt;   &lt;br /&gt;   &lt;br /&gt;    Set sourceField = pivotSource.PivotFields(&amp;quot;Name&amp;quot;)&lt;br /&gt;    Set targetField = pivotTarget.PivotFields(&amp;quot;Name&amp;quot;)&lt;br /&gt;   &lt;br /&gt;    For Each sourceItem In sourceField.PivotItems&lt;br /&gt;            &lt;br /&gt;            Set targetItem = GetPivotItemByName(targetField, sourceItem.Name)&lt;br /&gt;            &lt;br /&gt;            If (Not (targetItem Is Nothing)) Then&lt;br /&gt;            &lt;br /&gt;                  If (targetItem.Visible &amp;lt;&amp;gt; sourceItem.Visible) Then&lt;br /&gt;                        targetItem.Visible = sourceItem.Visible&lt;br /&gt;                  End If&lt;br /&gt;            End If&lt;br /&gt;    Next sourceItem&lt;br /&gt;      &lt;br /&gt;      &lt;br /&gt;    Set sourceField = pivotSource.PivotFields(&amp;quot;Date&amp;quot;)&lt;br /&gt;    Set targetField = pivotTarget.PivotFields(&amp;quot;Date&amp;quot;)&lt;br /&gt;   &lt;br /&gt;    For Each sourceItem In sourceField.PivotItems&lt;br /&gt;            &lt;br /&gt;            Set targetItem = GetPivotItemByName(targetField, sourceItem.Name)&lt;br /&gt;            &lt;br /&gt;            If (Not (targetItem Is Nothing)) Then&lt;br /&gt;            &lt;br /&gt;                  If (targetItem.Visible &amp;lt;&amp;gt; sourceItem.Visible) Then&lt;br /&gt;                        targetItem.Visible = sourceItem.Visible&lt;br /&gt;                  End If&lt;br /&gt;            End If&lt;br /&gt;    Next sourceItem&lt;br /&gt;      &lt;br /&gt;            &lt;br /&gt;    Set sourceField = pivotSource.PivotFields(&amp;quot;Month&amp;quot;)&lt;br /&gt;    Set targetField = pivotTarget.PivotFields(&amp;quot;Month&amp;quot;)&lt;br /&gt;   &lt;br /&gt;    For Each sourceItem In sourceField.PivotItems&lt;br /&gt;            &lt;br /&gt;            Set targetItem = GetPivotItemByName(targetField, sourceItem.Name)&lt;br /&gt;            &lt;br /&gt;            If (Not (targetItem Is Nothing)) Then&lt;br /&gt;                  If (targetItem.Visible &amp;lt;&amp;gt; sourceItem.Visible) Then&lt;br /&gt;                        targetItem.Visible = sourceItem.Visible&lt;br /&gt;                  End If&lt;br /&gt;                  &lt;br /&gt;                  If (targetItem.ShowDetail &amp;lt;&amp;gt; sourceItem.ShowDetail) Then&lt;br /&gt;                        targetItem.ShowDetail = sourceItem.ShowDetail&lt;br /&gt;                  End If&lt;br /&gt;            End If&lt;br /&gt;    Next sourceItem&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Public Function GetPivotItemByName(field As PivotField, item As String) As PivotItem&lt;br /&gt;      On Error Resume Next&lt;br /&gt;      Dim pvItem As PivotItem&lt;br /&gt;      &lt;br /&gt;      Set pvItem = Nothing&lt;br /&gt;      &lt;br /&gt;      Set pvItem = field.PivotItems(item)&lt;br /&gt;      &lt;br /&gt;      Set GetPivotItemByName = pvItem&lt;br /&gt;End Function&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Hope this helps :)&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-8068785461366348820?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/8068785461366348820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=8068785461366348820&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/8068785461366348820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/8068785461366348820'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2010/04/linking-two-pivot-tables.html' title='Linking Two Pivot Tables'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-5393589208445158016</id><published>2010-02-22T06:41:00.000-08:00</published><updated>2010-07-09T03:52:38.108-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VBA'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><category scheme='http://www.blogger.com/atom/ns#' term='Utility Functions.'/><title type='text'>Back to XL VBA : A Way to create Utility functions to increase reusability</title><content type='html'>Hi there!&lt;br /&gt;&lt;br /&gt;I normally create a Util Module every time I work on an Office Automation Project. I thought, people may be benefitted with it. Moreover, I will not have to create it again. I will copy it from here only ;)&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;&lt;br /&gt;Public Function SheetExists(wkb As Workbook, shtName As String) As Boolean&lt;br /&gt;    Dim sht As Worksheet&lt;br /&gt;    &lt;br /&gt;    Set sht = Nothing&lt;br /&gt;    On Error GoTo errHandler&lt;br /&gt;    Set sht = wkb.Worksheets(shtName)&lt;br /&gt;    SheetExists = True&lt;br /&gt;    Exit Function&lt;br /&gt;&lt;br /&gt;errHandler:&lt;br /&gt;    SheetExists = False&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Public Function GetSheet(wkb As Workbook, shtName As String) As Worksheet&lt;br /&gt;    Dim sht As Worksheet&lt;br /&gt;    &lt;br /&gt;    Set sht = Nothing&lt;br /&gt;    If (SheetExists(wkb, shtName)) Then&lt;br /&gt;        Set sht = wkb.Worksheets(shtName)&lt;br /&gt;    End If&lt;br /&gt;    &lt;br /&gt;    Set GetSheet = sht&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Public Function RangeExists(wkSht As Worksheet, rngName As String) As Boolean&lt;br /&gt;    Dim rng As Range&lt;br /&gt;    &lt;br /&gt;    Set rng = Nothing&lt;br /&gt;    On Error GoTo errHandler&lt;br /&gt;    Set rng = wkSht.Range(rngName)&lt;br /&gt;    RangeExists = True&lt;br /&gt;    Exit Function&lt;br /&gt;&lt;br /&gt;errHandler:&lt;br /&gt;    RangeExists = False&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Public Function GetRange(wkSht As Worksheet, rngName As String) As Range&lt;br /&gt;    Dim rng As Range&lt;br /&gt;    &lt;br /&gt;    Set rng = Nothing&lt;br /&gt;&lt;br /&gt;    If (RangeExists(wkSht, rngName)) Then&lt;br /&gt;        Set rng = wkSht.Range(rngName)&lt;br /&gt;    End If&lt;br /&gt;    &lt;br /&gt;    Set GetRange = rng&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Public Function GetRows(wkSht As Worksheet, Optional columnName As String = &amp;quot;A&amp;quot;) As Long&lt;br /&gt;    Dim rowCounter As Long&lt;br /&gt;    Dim runLoop As Boolean&lt;br /&gt;    Dim startRange As Range&lt;br /&gt;    &lt;br /&gt;    rowCounter = 0&lt;br /&gt;    runLoop = True&lt;br /&gt;    &lt;br /&gt;    Set startRange = wkSht.Range(columnName &amp;amp; &amp;quot;1&amp;quot;)&lt;br /&gt;    &lt;br /&gt;    While runLoop&lt;br /&gt;        If (Len(startRange.Offset(rowCounter, 0).Value) &amp;gt; 0) Then&lt;br /&gt;            rowCounter = rowCounter + 1&lt;br /&gt;        Else&lt;br /&gt;            runLoop = False&lt;br /&gt;        End If&lt;br /&gt;    Wend&lt;br /&gt;    &lt;br /&gt;    GetRows = rowCounter&lt;br /&gt;    &lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Public Function GetColumns(wkSht As Worksheet, Optional rowNum As String = &amp;quot;1&amp;quot;) As Long&lt;br /&gt;    Dim colCounter As Long&lt;br /&gt;    Dim runLoop As Boolean&lt;br /&gt;    Dim startRange As Range&lt;br /&gt;    &lt;br /&gt;    colCounter = 0&lt;br /&gt;    runLoop = True&lt;br /&gt;    &lt;br /&gt;    Set startRange = wkSht.Range(&amp;quot;A&amp;quot; &amp;amp; rowNum)&lt;br /&gt;    &lt;br /&gt;    While runLoop&lt;br /&gt;        If (Len(startRange.Offset(0, colCounter).Value) &amp;gt; 0) Then&lt;br /&gt;            colCounter = colCounter + 1&lt;br /&gt;        Else&lt;br /&gt;            runLoop = False&lt;br /&gt;        End If&lt;br /&gt;    Wend&lt;br /&gt;    &lt;br /&gt;    GetColumns = colCounter&lt;br /&gt;    &lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-5393589208445158016?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/5393589208445158016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=5393589208445158016&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/5393589208445158016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/5393589208445158016'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2010/02/back-to-xl-vba-way-to-create-utility.html' title='Back to XL VBA : A Way to create Utility functions to increase reusability'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-7046073128674463624</id><published>2010-01-18T04:36:00.000-08:00</published><updated>2010-01-18T05:28:46.003-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Storyboard'/><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Animation'/><category scheme='http://www.blogger.com/atom/ns#' term='Double Animation'/><category scheme='http://www.blogger.com/atom/ns#' term='Button Style'/><title type='text'>Designing a Button in WPF - "Simplest yet cool Button"</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;I have seen a lot of button templates which offer a cool looking styles by overriding the complete button template. Just to give a small style to a button can be complicated as far as overriding the template is concerned. I tried to build a button something like this :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_qXtQEx5SYuw/S1Rh0iEK9XI/AAAAAAAAAWY/HWy3ij_5vwA/s1600-h/Button.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 105px; height: 35px;" src="http://3.bp.blogspot.com/_qXtQEx5SYuw/S1Rh0iEK9XI/AAAAAAAAAWY/HWy3ij_5vwA/s400/Button.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5428071006013683058" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;An option could be, to include a new style for my button and override the template. But do we really need to do that???? I don't think so. The button which you are seeing in the Image is actually not a button, it is actually a border object filled with Alice Blue color, and with the corner radius set to 5. There is a textblock object inside the border so that it can contain some text. I didn't use label for that because textblock is lighter than a label.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qXtQEx5SYuw/S1Rh01SmyAI/AAAAAAAAAWg/T8T9-tdTTFU/s1600-h/Border.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 44px;" src="http://4.bp.blogspot.com/_qXtQEx5SYuw/S1Rh01SmyAI/AAAAAAAAAWg/T8T9-tdTTFU/s400/Border.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5428071011174500354" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now, this control is not yet completed because it doesn't give any notification whenever it is clicked. So I had to include some animation to this button.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qXtQEx5SYuw/S1Rh1LQhkcI/AAAAAAAAAWo/PMb37C_XfVw/s1600-h/DoubleAnimation.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 150px;" src="http://4.bp.blogspot.com/_qXtQEx5SYuw/S1Rh1LQhkcI/AAAAAAAAAWo/PMb37C_XfVw/s400/DoubleAnimation.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5428071017071350210" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here, I have opted to use code behind to run my animation. Like shown in the figure below :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qXtQEx5SYuw/S1Rh1d0lSFI/AAAAAAAAAWw/_ki9hjK3BLE/s1600-h/CodeBehind.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 49px;" src="http://1.bp.blogspot.com/_qXtQEx5SYuw/S1Rh1d0lSFI/AAAAAAAAAWw/_ki9hjK3BLE/s400/CodeBehind.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5428071022054426706" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;After including the above code lines, you can see that the border looks like a button and animates as well once you click the control.&lt;br /&gt;&lt;br /&gt;HTH,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-7046073128674463624?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/7046073128674463624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=7046073128674463624&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/7046073128674463624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/7046073128674463624'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2010/01/designing-button-in-wpf-simplest-yet.html' title='Designing a Button in WPF - &quot;Simplest yet cool Button&quot;'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qXtQEx5SYuw/S1Rh0iEK9XI/AAAAAAAAAWY/HWy3ij_5vwA/s72-c/Button.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-6541604848242595413</id><published>2009-10-08T00:13:00.000-07:00</published><updated>2009-10-08T00:18:22.100-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='Listview'/><category scheme='http://www.blogger.com/atom/ns#' term='Listview Item Background'/><category scheme='http://www.blogger.com/atom/ns#' term='Customizing Listview'/><title type='text'>WPF : Changing Listview Selected Item color</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;I am really loving WPF these days, all of the things which looked really tough to me earlier, are not simplified using WPF XAML. &lt;br /&gt;&lt;br /&gt;Here is the code for changing the background color of the selected item in a listview :&lt;br /&gt;Code : &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_qXtQEx5SYuw/Ss2SGSgWpFI/AAAAAAAAAVs/HKVkx3dhv0U/s1600-h/UploadToBlogAndDelete.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 51px;" src="http://3.bp.blogspot.com/_qXtQEx5SYuw/Ss2SGSgWpFI/AAAAAAAAAVs/HKVkx3dhv0U/s400/UploadToBlogAndDelete.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5390124965776761938" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt; Style TargetType="ListViewItem"&gt;&lt;br /&gt;            &lt; Style.Resources&gt;&lt;br /&gt;                &lt; SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="WhiteSmoke"/&gt;&lt;br /&gt;                &lt; SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent"/&gt;&lt;br /&gt;            &lt;/ Style.Resources&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-6541604848242595413?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/6541604848242595413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=6541604848242595413&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/6541604848242595413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/6541604848242595413'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2009/10/wpf-changing-listview-selected-item.html' title='WPF : Changing Listview Selected Item color'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qXtQEx5SYuw/Ss2SGSgWpFI/AAAAAAAAAVs/HKVkx3dhv0U/s72-c/UploadToBlogAndDelete.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-3822179006220400368</id><published>2009-08-29T07:17:00.000-07:00</published><updated>2009-08-29T07:22:58.046-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Listview Item'/><category scheme='http://www.blogger.com/atom/ns#' term='Checkbox Binding'/><category scheme='http://www.blogger.com/atom/ns#' term='Listview Selection Binding'/><category scheme='http://www.blogger.com/atom/ns#' term='Listview Checkbox'/><title type='text'>Binding Checkbox with the Listview Item Selection</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;I know, lot of people juggle around for this. I also did ;)&lt;br /&gt;&lt;br /&gt;Have you ever wondered to have a checkbox in a listview item which should be checked/unchecked as per the listviewitem selection and vice versa?&lt;br /&gt;&lt;br /&gt;Suppose if you have a checkbox as a listview item, and you want to check/uncheck the checkbox as soon as user selects the listview item. And vice versa, the listview item should be selected as soon as user selects the checkbox. The following line solves this purpose :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qXtQEx5SYuw/Spk5h4598hI/AAAAAAAAAVc/AuL0qHRXzL8/s1600-h/UploadToBlogAndDelete.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 71px;" src="http://4.bp.blogspot.com/_qXtQEx5SYuw/Spk5h4598hI/AAAAAAAAAVc/AuL0qHRXzL8/s400/UploadToBlogAndDelete.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5375390884617384466" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;HTH,&lt;br /&gt;Vikas Bhandari&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-3822179006220400368?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/3822179006220400368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=3822179006220400368&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/3822179006220400368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/3822179006220400368'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2009/08/binding-checkbox-with-listview-item.html' title='Binding Checkbox with the Listview Item Selection'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_qXtQEx5SYuw/Spk5h4598hI/AAAAAAAAAVc/AuL0qHRXzL8/s72-c/UploadToBlogAndDelete.PNG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-1924641978230264812</id><published>2009-08-29T03:21:00.000-07:00</published><updated>2009-08-29T03:32:16.300-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='GridviewColumnHeader'/><category scheme='http://www.blogger.com/atom/ns#' term='Font Size'/><category scheme='http://www.blogger.com/atom/ns#' term='Background Color'/><category scheme='http://www.blogger.com/atom/ns#' term='Text Size'/><category scheme='http://www.blogger.com/atom/ns#' term='Column'/><category scheme='http://www.blogger.com/atom/ns#' term='Gridview'/><category scheme='http://www.blogger.com/atom/ns#' term='Column header'/><title type='text'>Formatting the GridView Column Header in Listview</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;Please find below the code to set the background color of a GridviewColumnHeader inside a Listview. I will add more to it ;)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_qXtQEx5SYuw/SpkCrXXtZ5I/AAAAAAAAAVM/2VNbI7GhA5U/s1600-h/UploadToBlogAndDelete.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 80px;" src="http://2.bp.blogspot.com/_qXtQEx5SYuw/SpkCrXXtZ5I/AAAAAAAAAVM/2VNbI7GhA5U/s400/UploadToBlogAndDelete.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5375330574274488210" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Code to set the font size of a GridviewColumnHeader : &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_qXtQEx5SYuw/SpkDiQxpR5I/AAAAAAAAAVU/W9UJnBYtyX0/s1600-h/UploadToBlogAndDelete.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 201px;" src="http://2.bp.blogspot.com/_qXtQEx5SYuw/SpkDiQxpR5I/AAAAAAAAAVU/W9UJnBYtyX0/s400/UploadToBlogAndDelete.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5375331517397026706" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-1924641978230264812?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/1924641978230264812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=1924641978230264812&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/1924641978230264812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/1924641978230264812'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2009/08/formatting-gridview-column-header-in.html' title='Formatting the GridView Column Header in Listview'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_qXtQEx5SYuw/SpkCrXXtZ5I/AAAAAAAAAVM/2VNbI7GhA5U/s72-c/UploadToBlogAndDelete.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-5702521731360081676</id><published>2009-08-10T08:13:00.000-07:00</published><updated>2009-08-10T09:21:09.674-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Button'/><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='Tab Item'/><category scheme='http://www.blogger.com/atom/ns#' term='Combobox'/><category scheme='http://www.blogger.com/atom/ns#' term='WPF Styles'/><category scheme='http://www.blogger.com/atom/ns#' term='Combobox Template'/><category scheme='http://www.blogger.com/atom/ns#' term='Combobox Style'/><category scheme='http://www.blogger.com/atom/ns#' term='Tab Item Style'/><category scheme='http://www.blogger.com/atom/ns#' term='Button Style'/><title type='text'>WPF : Styling a Combobox, Button and Tabcontrol</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;I am still very much like a novice in my WPF skills. Still, I thought to share something useful with the world. I was looking to create a good looking Combobox style for my project. And (obviously after too much efforts), I created one. I know, it is simple but sometimes a novice like me tries to find an already build style so I thought I will post it here :&lt;br /&gt;&lt;br /&gt;I created something like this : &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_qXtQEx5SYuw/SoBESVG6BFI/AAAAAAAAAUY/jOGfU5_yzBc/s1600-h/WPFStyles.bmp"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 174px;" src="http://2.bp.blogspot.com/_qXtQEx5SYuw/SoBESVG6BFI/AAAAAAAAAUY/jOGfU5_yzBc/s200/WPFStyles.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5368365837520077906" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can download the complete project from here : &lt;a href="http://wpfstyles.codeplex.com/"&gt;Click here to download&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Please let me know if you have any questions or suggestions.&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-5702521731360081676?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/5702521731360081676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=5702521731360081676&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/5702521731360081676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/5702521731360081676'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2009/08/wpf-styling-combobox-button-and.html' title='WPF : Styling a Combobox, Button and Tabcontrol'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_qXtQEx5SYuw/SoBESVG6BFI/AAAAAAAAAUY/jOGfU5_yzBc/s72-c/WPFStyles.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-1919249352190337341</id><published>2009-06-30T07:25:00.000-07:00</published><updated>2009-06-30T07:36:37.790-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='Listview'/><category scheme='http://www.blogger.com/atom/ns#' term='GridviewColumnHeader'/><category scheme='http://www.blogger.com/atom/ns#' term='WPF Listview'/><category scheme='http://www.blogger.com/atom/ns#' term='Removing Column'/><category scheme='http://www.blogger.com/atom/ns#' term='Column'/><category scheme='http://www.blogger.com/atom/ns#' term='WPF Tags'/><title type='text'>WPF : Hide Headers from a GridviewColumn</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;I know, this is simple but I wasted a bunch of my valuable time in finding a solution while developing my first application in WPF. Include the following line in your &lt; listview&gt; block to get rid of headers in your gridview column.&lt;br /&gt;&lt;br /&gt;&lt; ListView.Resources&gt;&lt;br /&gt;   &lt; Style x:Key="CustomHeaderStyle" TargetType="{x:Type GridViewColumnHeader}"&gt;&lt;br /&gt;       &lt; Setter Property="Visibility" Value="Collapsed" /&gt;&lt;br /&gt;   &lt; /Style&gt;&lt;br /&gt;&lt; /ListView.Resources&gt;&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-1919249352190337341?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/1919249352190337341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=1919249352190337341&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/1919249352190337341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/1919249352190337341'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2009/06/wpf-hide-headers-from-gridviewcolumn.html' title='WPF : Hide Headers from a GridviewColumn'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-7629319863333711835</id><published>2009-06-26T03:20:00.000-07:00</published><updated>2009-06-26T03:46:04.261-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tagging'/><category scheme='http://www.blogger.com/atom/ns#' term='Image Metadata Tags'/><category scheme='http://www.blogger.com/atom/ns#' term='Read Image Tags'/><category scheme='http://www.blogger.com/atom/ns#' term='Read Image Metadata tags'/><category scheme='http://www.blogger.com/atom/ns#' term='Image Tagging'/><category scheme='http://www.blogger.com/atom/ns#' term='Search Images with Tags'/><category scheme='http://www.blogger.com/atom/ns#' term='Create Search Engine'/><category scheme='http://www.blogger.com/atom/ns#' term='Tag'/><title type='text'>Reading Image Metadata Tags with Dot Net</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;I had to find a way to tag images and then use the tagged images to be searched with the help of tagged keywords. Example, if some images are tagged with the keywords "xxx", then searching for xxx should produce the image with xxx tag in the search results.&lt;br /&gt;&lt;br /&gt;I tried with various document management software and all of these are actually very handy tools but they don't add metadata tags to images. Since we are spread all over the word, I thought it will be very often that the images will flow from one corner to other and the tags should flow along with the images. So the document management software approach ended with no benefit. Then I thought to develop a sample on my own. &lt;br /&gt;&lt;br /&gt;There was one more reason for developing it. I wanted to search the images and provide a custom task ( eg, Inserting the image in powerpoint) which no software gives. &lt;br /&gt;&lt;br /&gt;I download a free tagging software called ITag (&lt;a href="http://www.itagsoftware.com/iTagInstaller.exe"&gt;Click here for Download&lt;/a&gt;). And tag all of images with various keywords using this software. It is really a good tool to add metadata tags.&lt;br /&gt;&lt;br /&gt;Now when I added the tags, the following xml was added in the image (you can easily read the tags by editing the image files.)&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt; rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:exif="http://ns.adobe.com/exif/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmpMM:InstanceID="uuid:02ab02d9-02d1-11da-9510-ec7226ba1889" xmpMM:DocumentID="adobe:docid:photoshop:02ab02d2-02d1-11da-9510-ec7226ba1889" tiff:ResolutionUnit="2" tiff:YResolution="72/1" tiff:XResolution="72/1" tiff:Orientation="1" tiff:NativeDigest="256,257,258,259,262,274,277,284,530,531,282,283,296,301,318,319,529,532,306,270,271,272,305,315,33432;F68680A2E9A53199A34ACB3FE0102FCA" xmp:ModifyDate="2005-08-01T17:16:48+05:30" xmp:CreatorTool="Adobe Photoshop 7.0" exif:PixelYDimension="227" exif:PixelXDimension="892" exif:ColorSpace="65535" exif:NativeDigest="36864,40960,40961,37121,37122,40962,40963,37510,40964,36867,36868,33434,33437,34850,34852,34855,34856,37377,37378,37379,37380,37381,37382,37383,37384,37385,37386,37396,41483,41484,41486,41487,41488,41492,41493,41495,41728,41729,41730,41985,41986,41987,41988,41989,41990,41991,41992,41993,41994,41995,41996,42016,0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,22,23,24,25,26,27,28,30;1064FAD10D9AAF6E380C481B30061C1D"&gt;&lt;br /&gt;&lt;br /&gt;   &lt; dc:subject&gt;&lt; rdf:Bag xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"&gt;&lt; rdf:li&gt;Banking&lt; /rdf:li&gt;&lt; rdf:li&gt;Blinx&lt; /rdf:li&gt;&lt; rdf:li&gt;Burton&lt; /rdf:li&gt;&lt; rdf:li&gt;Wake up&lt; /rdf:li&gt;&lt; /rdf:Bag&gt;&lt;br /&gt;&lt;br /&gt;   &lt; /dc:subject&gt;&lt; /rdf:Description&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Now the above XML suggests that the image is tagged with 4 tags (Wake up,Blinx,Banking,Burton). &lt;br /&gt;&lt;br /&gt;After tagging, I run an indexing code and create a list of files with the tags. The produced output was like following :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt; ?xml version="1.0" encoding="UTF-8"?&gt;&lt;br /&gt;&lt;br /&gt;&lt; Files&gt;&lt;br /&gt;&lt;br /&gt;  &lt; File Name="imageName3.png"&gt;&lt;br /&gt;&lt;br /&gt;    &lt; Keyword&gt;Banking&lt; /Keyword&gt;&lt;br /&gt;    &lt; Keyword&gt;Sports&lt; /Keyword&gt;&lt;br /&gt;&lt;br /&gt;  &lt; /File&gt;&lt;br /&gt;&lt;br /&gt;  &lt; File Name="imageName2.png"&gt;&lt;br /&gt;&lt;br /&gt;    &lt; Keyword&gt;Banking&lt; /Keyword&gt;&lt;br /&gt;    &lt; Keyword&gt;AssetManagement&lt; /Keyword&gt;&lt;br /&gt;    &lt; Keyword&gt;Sports&lt; /Keyword&gt;&lt;br /&gt;&lt;br /&gt;  &lt; /File&gt;&lt;br /&gt;&lt;br /&gt;  &lt; File Name="imageName1.png"&gt;&lt;br /&gt;&lt;br /&gt;    &lt; Keyword&gt;Banking&lt; /Keyword&gt;&lt;br /&gt;    &lt; Keyword&gt;AssetManagement&lt; /Keyword&gt;&lt;br /&gt;    &lt; Keyword&gt;Sports&lt; /Keyword&gt;&lt;br /&gt;&lt;br /&gt;  &lt; /File&gt;&lt;br /&gt;&lt; /Files&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Now whenever user will enter a keyword in my search panel, I will just load the items from XML in the Panel and will display the images in a different thread.&lt;br /&gt;&lt;br /&gt;HTH,&lt;br /&gt;Vikas Bhandari&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-7629319863333711835?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/7629319863333711835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=7629319863333711835&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/7629319863333711835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/7629319863333711835'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2009/06/reading-image-metadata-tags-with-dot.html' title='Reading Image Metadata Tags with Dot Net'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-4569556309611317876</id><published>2009-06-24T06:30:00.000-07:00</published><updated>2009-06-24T07:32:18.852-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='User Control'/><category scheme='http://www.blogger.com/atom/ns#' term='Display User control in a Task Pane'/><category scheme='http://www.blogger.com/atom/ns#' term='Task Pane'/><category scheme='http://www.blogger.com/atom/ns#' term='Office 2007'/><title type='text'>Use WPF User control to display in a Task Pane</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;Use the following code in your Ribbon OnAction method to display a WPF User control in an office task pane:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;        Dim pane As WPFUserControlName= Nothing&lt;br /&gt;&lt;br /&gt;        If pane Is Nothing Then&lt;br /&gt;            Dim uControl As New UserControl()&lt;br /&gt;            Dim host As ElementHost = New ElementHost()&lt;br /&gt;&lt;br /&gt;            pane = New WPFUserControlName()&lt;br /&gt;&lt;br /&gt;            host.Child = pane&lt;br /&gt;            host.Dock = DockStyle.Left&lt;br /&gt;            host.Width = 200&lt;br /&gt;&lt;br /&gt;            uControl.Controls.Add(host)&lt;br /&gt;&lt;br /&gt;            taskPane = Globals.ThisAddIn.CustomTaskPanes.Add(uControl, "Biographies")&lt;br /&gt;            taskPane.Visible = True&lt;br /&gt;        Else&lt;br /&gt;            taskPane.Visible = True&lt;br /&gt;        End If&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-4569556309611317876?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/4569556309611317876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=4569556309611317876&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/4569556309611317876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/4569556309611317876'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2009/06/use-wpf-user-control-to-display-in-task.html' title='Use WPF User control to display in a Task Pane'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-924460302496874688</id><published>2009-06-23T07:38:00.000-07:00</published><updated>2009-06-23T08:20:51.908-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio Color List'/><category scheme='http://www.blogger.com/atom/ns#' term='Hex Codes'/><category scheme='http://www.blogger.com/atom/ns#' term='Dot Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Colors'/><category scheme='http://www.blogger.com/atom/ns#' term='Color Codes'/><category scheme='http://www.blogger.com/atom/ns#' term='Color List'/><title type='text'>Dot Net Color Codes</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;Please find&lt;/span&gt;below the dot net color codes. Source :&lt;a href="http://www.opinionatedgeek.com/DotNet/Tools/Colors/default.aspx"&gt;Click here to go to Source Site&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;AliceBlue&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="AliceBlue"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt;#F0F8FF&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;AntiqueWhite&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="AntiqueWhite"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt;#FAEBD7&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Aqua&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Aqua"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #00FFFF&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Aquamarine&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Aquamarine"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #7FFFD4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Azure&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Azure"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #F0FFFF&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Beige&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Beige"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #F5F5DC&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Bisque&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Bisque"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FFE4C4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Black&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Black"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #000000&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;BlanchedAlmond&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="BlanchedAlmond"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FFEBCD&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Blue&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Blue"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #0000FF&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;BlueViolet&lt;/span&gt;&lt;/td&gt;&lt;br /&gt;&lt;td width="250" bgcolor="BlueViolet"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #8A2BE2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Brown&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Brown"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #A52A2A&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;BurlyWood&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="BurlyWood"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #DEB887&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;CadetBlue&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="CadetBlue"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #5F9EA0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Chartreuse&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Chartreuse"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #7FFF00&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Chocolate&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Chocolate"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #D2691E&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Coral&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Coral"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FF7F50&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;CornflowerBlue&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="CornflowerBlue"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #6495ED&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Cornsilk&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Cornsilk"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FFF8DC&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Crimson&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Crimson"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #DC143C&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Cyan&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Cyan"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #00FFFF&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;DarkBlue&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="DarkBlue"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt;#00008B&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;DarkCyan&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="DarkCyan"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #008B8B&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;DarkGoldenrod&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="DarkGoldenrod"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #B8860B&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;DarkGray&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="DarkGray"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #A9A9A9&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;DarkGreen&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="DarkGreen"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #006400&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;DarkKhaki&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="DarkKhaki"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #BDB76B&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;DarkMagenta&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="DarkMagenta"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #8B008B&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;DarkOliveGreen&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="DarkOliveGreen"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #556B2F&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;DarkOrange&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="DarkOrange"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FF8C00&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;DarkOrchid&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="DarkOrchid"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #9932CC&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;DarkRed&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="DarkRed"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #8B0000&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;DarkSalmon&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="DarkSalmon"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #E9967A&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;DarkSeaGreen&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="DarkSeaGreen"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #8FBC8B&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;DarkSlateBlue&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="DarkSlateBlue"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #483D8B&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;DarkSlateGray&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="DarkSlateGray"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #2F4F4F&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;DarkTurquoise&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="DarkTurquoise"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #00CED1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;DarkViolet&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="DarkViolet"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #9400D3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;DeepPink&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="DeepPink"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FF1493&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;DeepSkyBlue&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="DeepSkyBlue"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #00BFFF&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;DimGray&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="DimGray"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #696969&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;DodgerBlue&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="DodgerBlue"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #1E90FF&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-eight:bold;"&gt;Firebrick&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Firebrick"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #B22222&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;FloralWhite&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="FloralWhite"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FFFAF0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;ForestGreen&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="ForestGreen"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #228B22&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Fuchsia&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Fuchsia"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FF00FF&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Gainsboro&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Gainsboro"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #DCDCDC&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;GhostWhite&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="GhostWhite"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #F8F8FF&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Gold&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Gold"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FFD700&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Goldenrod&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Goldenrod"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #DAA520&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Gray&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Gray"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #808080&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Green&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Green"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #008000&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;GreenYellow&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="GreenYellow"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #ADFF2F&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Honeydew&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Honeydew"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #F0FFF0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;HotPink&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="HotPink"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FF69B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;IndianRed&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="IndianRed"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #CD5C5C&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Indigo&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Indigo"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #4B0082&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Ivory&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Ivory"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FFFFF0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Khaki&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Khaki"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #F0E68C&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Lavender&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Lavender"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #E6E6FA&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;LavenderBlush&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="LavenderBlush"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FFF0F5&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;LawnGreen&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="LawnGreen"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #7CFC00&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;LemonChiffon&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="LemonChiffon"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FFFACD&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;LightBlue&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="LightBlue"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #ADD8E6&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;LightCoral&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="LightCoral"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #F08080&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;LightCyan&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="LightCyan"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #E0FFFF&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;LightGoldenrodYellow&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="LightGoldenrodYellow"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FAFAD2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;LightGray&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="LightGray"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #D3D3D3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;LightGreen&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="LightGreen"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #90EE90&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;LightPink&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="LightPink"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FFB6C1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;LightSalmon&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="LightSalmon"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FFA07A&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;LightSeaGreen&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="LightSeaGreen"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #20B2AA&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;LightSkyBlue&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="LightSkyBlue"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #87CEFA&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;LightSlateGray&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="LightSlateGray"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #778899&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;LightSteelBlue&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="LightSteelBlue"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #B0C4DE&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;LightYellow&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="LightYellow"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FFFFE0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Lime&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Lime"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #00FF00&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;LimeGreen&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="LimeGreen"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #32CD32&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Linen&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Linen"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt;#FAF0E6&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Magenta&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Magenta"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FF00FF&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Maroon&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Maroon"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #800000&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;MediumAquamarine&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="MediumAquamarine"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #66CDAA&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;MediumBlue&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="MediumBlue"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #0000CD&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;MediumOrchid&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="MediumOrchid"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #BA55D3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;MediumPurple&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="MediumPurple"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #9370DB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;MediumSeaGreen&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="MediumSeaGreen"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #3CB371&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;MediumSlateBlue&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="MediumSlateBlue"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #7B68EE&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;MediumSpringGreen&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="MediumSpringGreen"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #00FA9A&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;MediumTurquoise&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="MediumTurquoise"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #48D1CC&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;MediumVioletRed&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="MediumVioletRed"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #C71585&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;MidnightBlue&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="MidnightBlue"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #191970&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;MintCream&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="MintCream"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #F5FFFA&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;MistyRose&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="MistyRose"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FFE4E1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Moccasin&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Moccasin"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FFE4B5&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;NavajoWhite&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="NavajoWhite"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FFDEAD&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Navy&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Navy"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #000080&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;OldLace&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="OldLace"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FDF5E6&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Olive&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Olive"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #808000&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;OliveDrab&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="OliveDrab"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #6B8E23&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Orange&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Orange"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt;#FFA500&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;OrangeRed&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="OrangeRed"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FF4500&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Orchid&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Orchid"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #DA70D6&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;PaleGoldenrod&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="PaleGoldenrod"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #EEE8AA&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;PaleGreen&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="PaleGreen"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #98FB98&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;PaleTurquoise&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="PaleTurquoise"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #AFEEEE&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;PaleVioletRed&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="PaleVioletRed"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #DB7093&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;PapayaWhip&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="PapayaWhip"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FFEFD5&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;PeachPuff&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="PeachPuff"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FFDAB9&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Peru&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Peru"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #CD853F&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Pink&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Pink"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FFC0CB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Plum&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Plum"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #DDA0DD&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;PowderBlue&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="PowderBlue"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #B0E0E6&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Purple&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Purple"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #800080&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Red&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Red"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FF0000&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;RosyBrown&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="RosyBrown"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #BC8F8F&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;RoyalBlue&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="RoyalBlue"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #4169E1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;SaddleBrown&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="SaddleBrown"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #8B4513&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Salmon&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Salmon"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt;#FA8072&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;SandyBrown&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="SandyBrown"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #F4A460&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;SeaGreen&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="SeaGreen"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #2E8B57&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;SeaShell&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="SeaShell"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FFF5EE&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Sienna&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Sienna"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #A0522D&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Silver&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Silver"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #C0C0C0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;SkyBlue&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="SkyBlue"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #87CEEB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;SlateBlue&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="SlateBlue"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #6A5ACD&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;SlateGray&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="SlateGray"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #708090&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Snow&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Snow"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt;#FFFAFA&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;SpringGreen&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="SpringGreen"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #00FF7F&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;SteelBlue&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="SteelBlue"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #4682B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Tan&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Tan"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #D2B48C&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Teal&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Teal"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #008080&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Thistle&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Thistle"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #D8BFD8&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Tomato&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Tomato"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FF6347&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Transparent&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="#0000e0"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt;#FFFFFF&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Turquoise&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Turquoise"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #40E0D0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Violet&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Violet"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #EE82EE&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Wheat&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Wheat"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #F5DEB3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;White&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="White"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FFFFFF&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;WhiteSmoke&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="WhiteSmoke"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt;#F5F5F5&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Yellow&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="Yellow"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #FFFF00&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;YellowGreen&lt;/span&gt;&lt;/td&gt;&lt;td width="250" bgcolor="YellowGreen"&gt;&lt;span style="font-weight:bold;"&gt;Hex Code:&lt;/span&gt; #9ACD32&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas Bhandari&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-924460302496874688?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/924460302496874688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=924460302496874688&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/924460302496874688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/924460302496874688'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2009/06/dot-net-color-codes.html' title='Dot Net Color Codes'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-8292814127109857122</id><published>2009-05-22T04:28:00.000-07:00</published><updated>2009-05-22T05:28:37.540-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='Date Picker'/><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Date'/><category scheme='http://www.blogger.com/atom/ns#' term='Calendar'/><category scheme='http://www.blogger.com/atom/ns#' term='Calendar Control'/><category scheme='http://www.blogger.com/atom/ns#' term='WPF Calendar Control'/><title type='text'>WPF Calendar Control</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;By default, the WPF doesn't have the calendar control. And the toolkit release, it seemeed a little way techy for me. I wanted a simple calendar control and I really couldn't work out how I can use only a single control in my project. I thought, it would be easier for me to create a control of my own. hehe, well said by some one : &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;"Less Knowledge, less confusion, and No knowledge, no confusion. "&lt;/strong&gt;&lt;/em&gt; &lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Haha...So I designed something like following image:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_qXtQEx5SYuw/ShaOAP-GkVI/AAAAAAAAAQ4/e1xkJkFVWMQ/s1600-h/CalendarControl.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 266px; height: 231px;" src="http://3.bp.blogspot.com/_qXtQEx5SYuw/ShaOAP-GkVI/AAAAAAAAAQ4/e1xkJkFVWMQ/s400/CalendarControl.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5338610543232454994" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I have used Listview to display the dates and the items, like "Sun", "Mon" and the days are nothing but listview items. As soon as user changes the year or month, the method to reload the dates is fired. Very simple approach and very very basic functionality I have tried to put into. So if you want to download the project, then please click &lt;a href="http://wpfcalendarcontrol.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=27696"&gt;&lt;strong&gt;Here&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-8292814127109857122?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/8292814127109857122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=8292814127109857122&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/8292814127109857122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/8292814127109857122'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2009/05/wpf-calendar-control.html' title='WPF Calendar Control'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qXtQEx5SYuw/ShaOAP-GkVI/AAAAAAAAAQ4/e1xkJkFVWMQ/s72-c/CalendarControl.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-6674704659942866290</id><published>2009-05-19T06:45:00.000-07:00</published><updated>2009-05-20T07:43:43.260-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='Listview Group'/><category scheme='http://www.blogger.com/atom/ns#' term='Grouping Items'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Group Styles'/><title type='text'>Want to Apply a style to Listview/Combobox Groups? Here is the code:</title><content type='html'>Hi all,&lt;br /&gt;&lt;br /&gt;Have you ever grouped Item in a Combobox? Suppose if I have a list of names, and I want to publish the names grouped with the Initial letters. For example, All names with starting letter as "A" will fall under Group "A" and so on. Like given in the following screenshot :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_qXtQEx5SYuw/ShOm5nAXfBI/AAAAAAAAAQY/MrcCaeG1cLM/s1600-h/TestingCombobox.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 236px; height: 329px;" src="http://3.bp.blogspot.com/_qXtQEx5SYuw/ShOm5nAXfBI/AAAAAAAAAQY/MrcCaeG1cLM/s400/TestingCombobox.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5337793492017445906" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This is simple. Please download the code from &lt;a href="http://www.mediafire.com/?sharekey=11566388eff5ca1541446e35a78dc463e04e75f6e8ebb871"&gt;&lt;em&gt;&lt;strong&gt;Here&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Or check the code which is given below(in images) :&lt;br /&gt;&lt;br /&gt;Add the following code to Xaml Window&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_qXtQEx5SYuw/ShOnv0yjyVI/AAAAAAAAAQg/H_5IrqR1nsI/s1600-h/TestingComboboxXAML.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 385px;" src="http://4.bp.blogspot.com/_qXtQEx5SYuw/ShOnv0yjyVI/AAAAAAAAAQg/H_5IrqR1nsI/s400/TestingComboboxXAML.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5337794423430564178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_qXtQEx5SYuw/ShOoz3zc5XI/AAAAAAAAAQw/x9yI6ln1zvQ/s1600-h/ListItem.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 259px; height: 400px;" src="http://1.bp.blogspot.com/_qXtQEx5SYuw/ShOoz3zc5XI/AAAAAAAAAQw/x9yI6ln1zvQ/s400/ListItem.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5337795592470717810" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_qXtQEx5SYuw/ShOozkwB9eI/AAAAAAAAAQo/DVGZ1o0vJhA/s1600-h/TestingComboboxXAMLCodeBehind.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 339px; height: 400px;" src="http://1.bp.blogspot.com/_qXtQEx5SYuw/ShOozkwB9eI/AAAAAAAAAQo/DVGZ1o0vJhA/s400/TestingComboboxXAMLCodeBehind.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5337795587356095970" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-6674704659942866290?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/6674704659942866290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=6674704659942866290&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/6674704659942866290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/6674704659942866290'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2009/05/want-to-apply-style-to-listviewcombobox.html' title='Want to Apply a style to Listview/Combobox Groups? Here is the code:'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qXtQEx5SYuw/ShOm5nAXfBI/AAAAAAAAAQY/MrcCaeG1cLM/s72-c/TestingCombobox.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-591845131369822517</id><published>2009-05-15T07:13:00.000-07:00</published><updated>2009-05-15T07:18:29.739-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Valid Image Filtering'/><category scheme='http://www.blogger.com/atom/ns#' term='Filter List'/><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='LINQ Query'/><category scheme='http://www.blogger.com/atom/ns#' term='LINQs'/><title type='text'>Using Linq for Filtering File Types etc</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;If you have a List of Type IO.File and you want to filter this list to contain only valid images. Then follow the following approach:&lt;br /&gt;&lt;br /&gt;Define your array of Valid extensions :&lt;br /&gt;&lt;br /&gt;Private IMAGES() As String = {".JPG", ".PNG", ".GIF", ".JPEG"}&lt;br /&gt;&lt;br /&gt;The following function returns a list with Valid Images extensions as mentioned in the above array :&lt;br /&gt;&lt;br /&gt;Public Function GetValidImage(ByVal files As List(Of File)) As List(Of File)&lt;br /&gt;        Dim tmpList As List(Of File) = New List(Of File)&lt;br /&gt;        Dim result = From s In files Group Join p In IMAGES On s.Extension.ToUpper() Equals p.ToUpper() Into Group From p In Group Select s&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        For Each file As File In result&lt;br /&gt;            tmpList.Add(file)&lt;br /&gt;        Next file&lt;br /&gt;&lt;br /&gt;        Return tmpList&lt;br /&gt;&lt;br /&gt;    End Function&lt;br /&gt;&lt;br /&gt;Let me know if you have any other questions.&lt;br /&gt;&lt;br /&gt;HTH,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-591845131369822517?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/591845131369822517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=591845131369822517&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/591845131369822517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/591845131369822517'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2009/05/using-linq-for-filtering-file-types-etc.html' title='Using Linq for Filtering File Types etc'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-6754589969196364734</id><published>2009-05-14T03:10:00.000-07:00</published><updated>2009-05-14T03:29:24.233-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Office Service Pack 2'/><category scheme='http://www.blogger.com/atom/ns#' term='MS Office SP2'/><category scheme='http://www.blogger.com/atom/ns#' term='Chart Engine Unlocked'/><category scheme='http://www.blogger.com/atom/ns#' term='Bugs Removed in SP2'/><category scheme='http://www.blogger.com/atom/ns#' term='Service Pack 2'/><title type='text'>Office 2007 SP2 Release</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;Though the release has been done almost a month ago...I missed to include it here in my blog.&lt;br /&gt;&lt;br /&gt;They(Microsoft) have fixed a bunch of bugs found in SP1...and I am sure, 2007 is going to be stable very very soon. This is the reason that most of big organisations, who work on Office rigorously, for example Investment banks like GS or Morgan stanley, they have been shifting their documents to 2007 versions. The office 2007 is certainly going to be much much more popular than it is right now. Lots of cool features. I love themes by the way.&lt;br /&gt;&lt;br /&gt;So lets get back to SP2. Microsoft found so many bugs in the previous versions, which forced them to issue a very heavy service pack because the number of bugs they have fixed is huge. Around 600 they have posted here in the link :&lt;br /&gt;&lt;br /&gt;&lt;a href = "http://download.microsoft.com/download/C/2/C/C2C36159-600C-4EEA-B80A-F988EE7A418F/2007%20Office%20Service%20Pack%202%20Changes.xlsx"&gt;Microsoft Office 2007 SP2 Bug Fixes.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For me, the best thing is the chart object for PowerPoint and Word is unlocked. Now you can format/edit the chart source data etc from PowerPoint only. Earlier, before SP2, for formatting a chart programmatically, one had to take the chart to excel and paste it back to PowerPoint. A big pain for me. Using OpenXML was also a big big Pain. &lt;br /&gt;&lt;br /&gt;So now, if you have to delete a Series, you can just create the chart object and then add/delete a series. Bingo :)&lt;br /&gt;&lt;br /&gt;I love SP2, and I am sure, it will definitely help the Office developers like me, who have to work hard with Charts in PP/Word.&lt;br /&gt;&lt;br /&gt;HTH :)&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-6754589969196364734?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/6754589969196364734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=6754589969196364734&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/6754589969196364734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/6754589969196364734'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2009/05/office-2007-sp2-release.html' title='Office 2007 SP2 Release'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-4903581584984908960</id><published>2009-05-14T02:54:00.000-07:00</published><updated>2009-05-14T03:08:13.658-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dynamic Charts'/><category scheme='http://www.blogger.com/atom/ns#' term='Powerpoint 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='Adding/Deleting Series'/><category scheme='http://www.blogger.com/atom/ns#' term='Charts'/><title type='text'>Automatic Updating chart</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;I was reading a forum : &lt;a href="http://www.theofficeexperts.com/forum/forumdisplay.php?f=6"&gt;Powerpoint Forum&lt;/a&gt; where I found a query. And since I have not tried working rigorously with Charts, I thought it will be a worth trying. A guy in the forum asked a question see the question here :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.theofficeexperts.com/forum/showthread.php?p=37153&amp;posted=1#post37153"&gt;Click me for the Question&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Basically he wants to something like following : &lt;br /&gt;&lt;br /&gt;He has a Chart in a PowerPoint Slide, and the series will be added/ removed through click of checkbox buttons as given in the following image&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_qXtQEx5SYuw/Sgvrtisg8mI/AAAAAAAAAO4/UwdAOhai5O4/s1600-h/TheFirstScreenshot.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 190px;" src="http://4.bp.blogspot.com/_qXtQEx5SYuw/Sgvrtisg8mI/AAAAAAAAAO4/UwdAOhai5O4/s200/TheFirstScreenshot.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5335617351190639202" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;br /&gt;And if user unchecks a checkbox, then the series will be removed from the Chart. For example, if I uncheck the 2nd checkbox, the output will be like following:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_qXtQEx5SYuw/Sgvrtot_r6I/AAAAAAAAAOw/hZQE56_58mg/s1600-h/The2ndScreenshot.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 176px;" src="http://3.bp.blogspot.com/_qXtQEx5SYuw/Sgvrtot_r6I/AAAAAAAAAOw/hZQE56_58mg/s200/The2ndScreenshot.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5335617352807460770" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The 2nd option is deleted.&lt;br /&gt;&lt;br /&gt;I did it...though through a tweak, but yes I did it. I am sure that someone may have a better solution and if someone has then please do forward me @ vikasbhandari2@gmail.com&lt;br /&gt;&lt;br /&gt;Would like to add again, that since I don't access a file hosting site so I am adding the code here only. Send me a mail if you want a copy of it. :P&lt;br /&gt;&lt;br /&gt;&lt;font color = "#FF66CC"&gt;&lt;em&gt;Private Sub CheckBox1_Click()&lt;br /&gt;UpdateChart&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub CheckBox2_Click()&lt;br /&gt;UpdateChart&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub CheckBox3_Click()&lt;br /&gt;UpdateChart&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub CheckBox4_Click()&lt;br /&gt;UpdateChart&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub CheckBox5_Click()&lt;br /&gt;UpdateChart&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sub UpdateChart()&lt;br /&gt;Dim chrt As Chart&lt;br /&gt;Dim chrtShape As Shape&lt;br /&gt;Dim seriesList As seriesCollection&lt;br /&gt;Dim iSeries As Series&lt;br /&gt;Dim chrtWorkbook As Excel.Workbook&lt;br /&gt;Dim seriesSelected(5) As Boolean&lt;br /&gt;Dim wrkbook As Object&lt;br /&gt;&lt;br /&gt;seriesSelected(1) = CheckBox1.Value&lt;br /&gt;seriesSelected(2) = CheckBox2.Value&lt;br /&gt;seriesSelected(3) = CheckBox3.Value&lt;br /&gt;seriesSelected(4) = CheckBox4.Value&lt;br /&gt;seriesSelected(5) = CheckBox5.Value&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;If seriesSelected(1) = False And seriesSelected(2) = False And _&lt;br /&gt;                    seriesSelected(2) = False And seriesSelected(2) = False And _&lt;br /&gt;                    seriesSelected(2) = False Then&lt;br /&gt;                    &lt;br /&gt;                    MsgBox "No checkbox checked. Exiting sub"&lt;br /&gt;                    Exit Sub&lt;br /&gt;End If&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;On Error Resume Next&lt;br /&gt;Set chrtShape = ActivePresentation.Slides(1).Shapes("Chart 3")&lt;br /&gt;Set chrt = chrtShape.Chart&lt;br /&gt;chrt.ChartData.Activate&lt;br /&gt;Err.Clear&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Dim xValue As String&lt;br /&gt;Dim rowCounter As Integer&lt;br /&gt;Dim addedOnce As Boolean&lt;br /&gt;Dim frstTime As Boolean&lt;br /&gt;Dim brCounter As Integer&lt;br /&gt;Dim prefixY As String&lt;br /&gt;frstTime = True&lt;br /&gt;addedOnce = False&lt;br /&gt;&lt;br /&gt;rowCounter = 1&lt;br /&gt;xValue = "$A$1:$A$6"&lt;br /&gt;brCounter = 0&lt;br /&gt;rowCounter = 1&lt;br /&gt;On Error GoTo 0&lt;br /&gt;Set iSeries = chrt.seriesCollection(1)&lt;br /&gt;&lt;br /&gt;For i = 1 To 5&lt;br /&gt;    rowCounter = rowCounter + 1&lt;br /&gt;    &lt;br /&gt;    If seriesSelected(i) = False Then&lt;br /&gt;        brCounter = rowCounter&lt;br /&gt;        If addedOnce Then&lt;br /&gt;            If frstTime Then&lt;br /&gt;                prefixX = xValue&lt;br /&gt;                xValue = ""&lt;br /&gt;                frstTime = False&lt;br /&gt;            Else&lt;br /&gt;                prefixX = prefixX &amp; "," &amp; xValue&lt;br /&gt;                xValue = ""&lt;br /&gt;            End If&lt;br /&gt;        Else&lt;br /&gt;            &lt;br /&gt;        End If&lt;br /&gt;    Else&lt;br /&gt;        addedOnce = True&lt;br /&gt;        xValue = "Sheet1!$A$" &amp; brCounter + 1 &amp; ":$B$" &amp; rowCounter&lt;br /&gt;    End If&lt;br /&gt;    &lt;br /&gt;Next i&lt;br /&gt;&lt;br /&gt;Dim allRemoved As Boolean&lt;br /&gt;&lt;br /&gt;allRemoved = False&lt;br /&gt;&lt;br /&gt;While Not allRemoved&lt;br /&gt;    If InStr(1, prefixX, ",,") &gt; 0 Then&lt;br /&gt;        prefixX = Replace(prefixX, ",,", ",")&lt;br /&gt;    Else&lt;br /&gt;        allRemoved = True&lt;br /&gt;    End If&lt;br /&gt;Wend&lt;br /&gt;&lt;br /&gt;prefixX = prefixX &amp; "," &amp; xValue&lt;br /&gt;xValue = Replace(prefixX, ",,", ",")&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; If Right(xValue, 1) = "," Then&lt;br /&gt;    xValue = Mid(xValue, 1, Len(xValue) - 1)&lt;br /&gt; End If&lt;br /&gt; &lt;br /&gt; If Left(xValue, 1) = "," Then&lt;br /&gt;    xValue = Mid(xValue, 2, Len(xValue) - 1)&lt;br /&gt; End If&lt;br /&gt; &lt;br /&gt; chrt.SetSourceData xValue&lt;br /&gt; chrt.ChartData.Workbook.Close&lt;br /&gt;Err.Clear&lt;br /&gt;End Sub&lt;br /&gt;&lt;/em&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;HTH.&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-4903581584984908960?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/4903581584984908960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=4903581584984908960&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/4903581584984908960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/4903581584984908960'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2009/05/automatic-updating-chart.html' title='Automatic Updating chart'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_qXtQEx5SYuw/Sgvrtisg8mI/AAAAAAAAAO4/UwdAOhai5O4/s72-c/TheFirstScreenshot.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-5848130971089204791</id><published>2009-05-05T03:21:00.000-07:00</published><updated>2009-05-26T03:23:01.894-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='search items'/><category scheme='http://www.blogger.com/atom/ns#' term='Autocomplete'/><category scheme='http://www.blogger.com/atom/ns#' term='AutoComplete Combobox'/><category scheme='http://www.blogger.com/atom/ns#' term='WPF Ajax Style Autocomplete Textbox'/><category scheme='http://www.blogger.com/atom/ns#' term='Autocomplete textbox'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Toolbar'/><title type='text'>Auto Complete Textbox for Vb.Net Desktop Applications</title><content type='html'>Hi all,&lt;br /&gt;&lt;br /&gt;Ever tried the google toolbar? Whenever you type something, the results are displayed related to the type text just below the textbox. Have you ever wondered if you can include the same thing in your project. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;font face = "verdana" size = "2" color = "blue"&gt; Edited on &lt; 10 AM EST, 19th May 2009: &gt; &lt;br /&gt;&lt;a href="http://autocompletetextbox.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=27545#DownloadId=68755"&gt;Click here for the complete project&lt;/a&gt;&lt;br /&gt; &lt;/font&gt;&lt;br /&gt;&lt;br /&gt;I tried to achieve the following :&lt;br /&gt;&lt;br /&gt;If I enter a file name, then all the file names which has the text entered by me should appear in a pop up just below my textbox. If somebody cannot access the code at the codeplex, or if somebody cannot download, I have added the code right here : &lt;br /&gt;&lt;br /&gt;I applied the following trick :&lt;br /&gt;&lt;br /&gt;I loaded few paths to a collection. Created a textbox, and a combobox just behind the textbox so that it should not be visible, but its drop down should be. If I enter some name, and if the text is present in the combobbox items, then the combobox dropdown should display all the items which has that text. Ofcourse, the items should be grouped accordingly.&lt;br /&gt;&lt;br /&gt;First step, add a class &lt;em&gt;&lt;strong&gt;"AutoCompleteEntry"&lt;/strong&gt;&lt;/em&gt;. This will be the class which will be bound to the collection as Combobox Items.&lt;br /&gt;&lt;br /&gt;&lt;font color = "red"&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;br /&gt;Imports System.IO&lt;br /&gt;&lt;br /&gt;Public Class AutoCompleteEntry&lt;br /&gt;    Public type As String&lt;br /&gt;&lt;br /&gt;    Public information As FileInfo&lt;br /&gt;&lt;br /&gt;    Public Sub New(ByVal type As String, ByVal fileInformation As FileInfo)&lt;br /&gt;        Me.type = type&lt;br /&gt;        information = fileInformation&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Public Property FileType() As String&lt;br /&gt;        Get&lt;br /&gt;            Return type&lt;br /&gt;        End Get&lt;br /&gt;        Set(ByVal value As String)&lt;br /&gt;            type = value&lt;br /&gt;        End Set&lt;br /&gt;    End Property&lt;br /&gt;&lt;br /&gt;    Public Property FileInformation() As FileInfo&lt;br /&gt;        Get&lt;br /&gt;            Return information&lt;br /&gt;        End Get&lt;br /&gt;        Set(ByVal value As FileInfo)&lt;br /&gt;            information = value&lt;br /&gt;        End Set&lt;br /&gt;    End Property&lt;br /&gt;&lt;br /&gt;    Public ReadOnly Property ParentFolder() As String&lt;br /&gt;        Get&lt;br /&gt;            Return information.Name&lt;br /&gt;        End Get&lt;br /&gt;    End Property&lt;br /&gt;&lt;br /&gt;    Public ReadOnly Property Name() As String&lt;br /&gt;        Get&lt;br /&gt;            Return information.Name&lt;br /&gt;        End Get&lt;br /&gt;    End Property&lt;br /&gt;&lt;br /&gt;    Public ReadOnly Property Size() As String&lt;br /&gt;        Get&lt;br /&gt;            Return information.Length &amp; " bytes"&lt;br /&gt;        End Get&lt;br /&gt;    End Property&lt;br /&gt;&lt;br /&gt;End Class&lt;/blockquote&gt;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;2nd Step, create a Xaml File with the Name of SearchControl.Xaml and add the following code there.&lt;br /&gt;&lt;br /&gt;&lt;font color = "red"&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt; UserControl x:Class="SearchControl"&lt;br /&gt;    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;br /&gt;    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"&lt;br /&gt;    &gt;&lt;br /&gt;    &lt; UserControl.Resources&gt;&lt;br /&gt;        &lt; DataTemplate x:Key="cmbTemplate"&gt;&lt;br /&gt;            &lt; StackPanel Orientation="Horizontal" Width="250"&gt;&lt;br /&gt;                &lt; TextBlock Text="{Binding Path=Name}" Width="100" /&gt;&lt;br /&gt;                &lt; TextBlock Text="{Binding Path=ParentFolder}" Width="70" HorizontalAlignment="Left" Margin="5,0,0,0"/&gt;&lt;br /&gt;                &lt; TextBlock Text="{Binding Path=Size}" Width="80"  HorizontalAlignment="Left" Margin="5,0,0,0"/&gt;&lt;br /&gt;            &lt; /StackPanel&gt;&lt;br /&gt;        &lt; /DataTemplate&gt;&lt;br /&gt;&lt;br /&gt;    &lt; /UserControl.Resources&gt;&lt;br /&gt;    &lt; Grid&gt;&lt;br /&gt;&lt;br /&gt;        &lt; ComboBox Margin="2,28,0,0"  Name="cmbAutoComplete" &lt;br /&gt;                  ItemsSource="{Binding}" ItemTemplate="{StaticResource cmbTemplate}" MaxDropDownHeight="200" Height="24" VerticalAlignment="Top"&gt;&lt;br /&gt;            &lt; ComboBox.GroupStyle&gt;&lt;br /&gt;                &lt; GroupStyle&gt;&lt;br /&gt;                    &lt; GroupStyle.HeaderTemplate&gt;&lt;br /&gt;                        &lt; DataTemplate&gt;&lt;br /&gt;                            &lt; StackPanel&gt;&lt;br /&gt;                                &lt; Border BorderThickness="1" BorderBrush="Black"&gt;&lt;br /&gt;                                    &lt; TextBlock Text="{Binding Items[0].FileType}" Background="AliceBlue"/&gt;&lt;br /&gt;                                    &lt; /Border&gt;&lt;br /&gt;                            &lt; /StackPanel&gt;&lt;br /&gt;                        &lt; /DataTemplate&gt;&lt;br /&gt;                    &lt; /GroupStyle.HeaderTemplate&gt;&lt;br /&gt;&lt;br /&gt;                &lt; /GroupStyle&gt;&lt;br /&gt;            &lt; /ComboBox.GroupStyle&gt;&lt;br /&gt;        &lt; /ComboBox&gt;&lt;br /&gt;        &lt; TextBox Margin="2,28,0,0" Name="TextBox1" TextChanged="TextBox1_TextChanged" Height="24" VerticalAlignment="Top" /&gt;&lt;br /&gt;        &lt; Label Margin="22,2,0,0" Name="Label1" Height="23" VerticalAlignment="Top" FontWeight="Bold" Foreground="DarkBlue" HorizontalAlignment="Left" Width="119"&gt;Enter Text Criteria&lt; /Label&gt;&lt;br /&gt;    &lt; /Grid&gt;&lt;br /&gt;&lt; /UserControl&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3rd Step, copy the following code and paste in the SearchControl.Xaml file.&lt;br /&gt;&lt;br /&gt;&lt;font color = "red"&gt;&lt;br /&gt;&lt;blockquote&gt;Imports System.Collections.ObjectModel&lt;br /&gt;Imports System.ComponentModel&lt;br /&gt;&lt;br /&gt;''' &lt; summary &gt;&lt;br /&gt;''' This class takes the path of the file which user can search and sees how big file it is.&lt;br /&gt;''' &lt; /summary &gt;&lt;br /&gt;''' &lt; remarks&gt;&lt; /remarks&gt;&lt;br /&gt;&lt;br /&gt;Partial Public Class SearchControl&lt;br /&gt;&lt;br /&gt;    Private _threshold As Integer = 2&lt;br /&gt;&lt;br /&gt;    Private path As String = "C:\Vikas-Data\" ' set the path here which you want to search&lt;br /&gt;&lt;br /&gt;    Private items As ObservableCollection(Of AutoCompleteEntry)&lt;br /&gt;    Private view As IcollectionView&lt;br /&gt;&lt;br /&gt;    Public Sub New()&lt;br /&gt;&lt;br /&gt;        ' This call is required by the Windows Form Designer.&lt;br /&gt;        InitializeComponent()&lt;br /&gt;&lt;br /&gt;        ' Add any initialization after the InitializeComponent() call.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        items = New ObservableCollection(Of AutoCompleteEntry)&lt;br /&gt;&lt;br /&gt;        LoadPaths(New IO.DirectoryInfo(path))&lt;br /&gt;&lt;br /&gt;        view = CollectionViewSource.GetDefaultView(items)&lt;br /&gt;        view.GroupDescriptions.Add(New PropertyGroupDescription("FileType"))&lt;br /&gt;&lt;br /&gt;        cmbAutoComplete.DataContext = items&lt;br /&gt;&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub LoadPaths(ByVal dInfo As IO.DirectoryInfo)&lt;br /&gt;        Dim info As IO.DirectoryInfo&lt;br /&gt;&lt;br /&gt;        For Each info In dInfo.GetDirectories()&lt;br /&gt;            LoadPaths(info)&lt;br /&gt;        Next info&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        For Each fInfo As IO.FileInfo In dInfo.GetFiles()&lt;br /&gt;            items.Add(New AutoCompleteEntry(dInfo.FullName, fInfo))&lt;br /&gt;        Next fInfo&lt;br /&gt;&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.Windows.Controls.TextChangedEventArgs)&lt;br /&gt;        Dim text As String&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        text = TextBox1.Text&lt;br /&gt;&lt;br /&gt;        If (text.Length &lt; _threshold) Then&lt;br /&gt;&lt;br /&gt;        Else&lt;br /&gt;            view.Filter = New Predicate(Of Object)(AddressOf MyPredicate)&lt;br /&gt;&lt;br /&gt;            If (cmbAutoComplete.HasItems) Then&lt;br /&gt;                cmbAutoComplete.IsDropDownOpen = True&lt;br /&gt;            End If&lt;br /&gt;        End If&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Private Function MyPredicate(ByVal item As Object) As Boolean&lt;br /&gt;        Dim text As String&lt;br /&gt;        Dim itemEntry As AutoCompleteEntry&lt;br /&gt;&lt;br /&gt;        text = TextBox1.Text&lt;br /&gt;        itemEntry = TryCast(item, AutoCompleteEntry)&lt;br /&gt;&lt;br /&gt;        If (itemEntry.Name.IndexOf(text) &gt; -1) Then&lt;br /&gt;            Return True&lt;br /&gt;        End If&lt;br /&gt;&lt;br /&gt;        Return False&lt;br /&gt;&lt;br /&gt;    End Function&lt;br /&gt;&lt;br /&gt;End Class&lt;/blockquote&gt;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;The output is like following screenshot :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_qXtQEx5SYuw/ShvCbVK8wuI/AAAAAAAAARk/bJf3HkZOn20/s1600-h/Box.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 227px;" src="http://3.bp.blogspot.com/_qXtQEx5SYuw/ShvCbVK8wuI/AAAAAAAAARk/bJf3HkZOn20/s400/Box.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5340075557973181154" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I entered "VB" and I had various file names in the collection which contain vb so it displayed file names grouped by the folder names.&lt;br /&gt;&lt;br /&gt;Hope this article will help you!&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-5848130971089204791?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/5848130971089204791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=5848130971089204791&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/5848130971089204791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/5848130971089204791'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2009/05/auto-complete-textbox-for-vbnet-desktop.html' title='Auto Complete Textbox for Vb.Net Desktop Applications'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qXtQEx5SYuw/ShvCbVK8wuI/AAAAAAAAARk/bJf3HkZOn20/s72-c/Box.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-1203224092251049014</id><published>2009-04-24T06:57:00.000-07:00</published><updated>2009-04-24T07:09:56.529-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='WPF Styles'/><category scheme='http://www.blogger.com/atom/ns#' term='WPF Themes'/><category scheme='http://www.blogger.com/atom/ns#' term='WPF Effects'/><category scheme='http://www.blogger.com/atom/ns#' term='Themes'/><title type='text'>Use WPF Themes and styles</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qXtQEx5SYuw/SfHFnMwnMCI/AAAAAAAAAJc/va26LOmt83c/s1600-h/WPFThemes.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 108px;" src="http://3.bp.blogspot.com/_qXtQEx5SYuw/SfHFnMwnMCI/AAAAAAAAAJc/va26LOmt83c/s200/WPFThemes.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5328257111386697762" /&gt;&lt;/a&gt;&lt;br /&gt;WPF, the future of Window Forms and Programming, has some fantastic flexibility to create excellent styles and apply with an immense ease. Here is an example, we can apply the themes to our WPF UIs, and the theme will take care of styles of the components used in the window. See the following link:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wpf.codeplex.com/Wiki/View.aspx?title=WPF%20Themes&amp;referringTitle=Home"&gt;WPF Themes Home&lt;/a&gt;. &lt;i&gt;Samantha is great :)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Hope this helps!&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-1203224092251049014?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/1203224092251049014/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=1203224092251049014&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/1203224092251049014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/1203224092251049014'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2009/04/wpf-themes.html' title='Use WPF Themes and styles'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qXtQEx5SYuw/SfHFnMwnMCI/AAAAAAAAAJc/va26LOmt83c/s72-c/WPFThemes.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-1458789421300621660</id><published>2009-04-06T01:48:00.050-07:00</published><updated>2009-04-06T02:11:21.365-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Releasing COM Objects'/><category scheme='http://www.blogger.com/atom/ns#' term='Ghost Instance'/><title type='text'>Ghost Instance Problem in office application</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;A number of office programmers face the Ghost Instance issue while developing office applications. The ghost instance is an instance of office application which is not closed properly. In this scenario, you will be able to see the application entry in the Porcess list of task manager but it will not be visible for the user. I will explain the context by using an example of powerpoint Addin(Obviously in dot net).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Q.&lt;/strong&gt; How does it occur?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Ans&lt;/strong&gt;. I create a PowerPoint(aka, PP)Addin, and in that PP Addin I try to create an excel(aka, XL) Application object. Now if I do extensive programming using XL objects(like Range, Shapes, Worksheet etc), these InterOP variables stay in Memory and not handled by the CLR. You will need to explicitly release every COM Object by using System.Runtime.InteropServices.Marshal.ReleaseCOMObject(theObjectToBeReleased) method. But, even after releasing the objects few of the instances keep on running in memory. So if the variables are running in the memory, and I try to close the excel, the excel gets closed but its process keeps on running in the task Manager List. When we hit close button(the cross button in TopLeftHand corner) in Excel, the CLR first closes all the AddIns opened, and then closes the excel window. If there is any COM running in the memory the AddIns get removed but the CLR is unable to close the Excel properly. The result is Ghost Instance. In case of Ghost Instance running in the task manager, if we open any Excel File by double clicking the file, it will open the file but it will Not load any Addins. Reason is barely simple, the Addins were already closed by CLR but not the Excel Application Instance. So the file is actually opened in the previous Excel Ghost Instance. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Q. &lt;/strong&gt;What is the solution?&lt;br /&gt;&lt;strong&gt;Ans.&lt;/strong&gt; One solution to the problem is: Go to task Manager, Process Tab, and kill the Excel.EXE instance.&lt;br /&gt;    The other solution is to include the following approach in AddInShutDown event of your code. This work around uses the Process Class.&lt;br /&gt;&lt;br /&gt;1. Try to get the list of Processes by GetProcessByName method : &lt;br /&gt;   Process[] processes = Process.GetProcessesByName("EXCEL")&lt;br /&gt;2. Run through Each Process in the processes Array and check if process.MainWindowHandle.ToInt64() is equal to 0. If this is 0 then you will need to kill the process right away.&lt;br /&gt;3. The only thing you will need to take care is, to create a time Lag so that all the AddIns should shut down first then you will need to call the above steps.&lt;br /&gt;4. Creating a Time lag means, you can use a separate EXE, which will run the above steps say 5 seconds after the Excel Closing event was fired.&lt;br /&gt;&lt;br /&gt;Hope this helps :)&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-1458789421300621660?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/1458789421300621660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=1458789421300621660&amp;isPopup=true' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/1458789421300621660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/1458789421300621660'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2009/04/ghost-instance-problem-in-office.html' title='Ghost Instance Problem in office application'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-3150458596811227087</id><published>2009-04-03T01:22:00.033-07:00</published><updated>2009-04-03T05:25:26.975-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Excel Selection Type'/><category scheme='http://www.blogger.com/atom/ns#' term='Runtime Proxy'/><title type='text'>Problem in using Information.TypeName Property</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;Whenever we debug the code in Dot Net while using InterOP, it is very frequent to notice a proxy object rather than the actual InterOP object. When you try to get the properties of an InterOP Variable, it shows you some proxy object, and not the actual InterOP object. For example, if I declare a variable like following :&lt;br /&gt;&lt;br /&gt;Dim xlApp as XL.Application (The excel Application object)&lt;br /&gt;set xlApp = ME.Globals.ThisAddin.Application&lt;br /&gt;&lt;br /&gt;Now, in the debug mode, after executing the above line, if I want to see what values are stored in xlApp variable, the dot net editor will show the variable as a Runtime.Proxy object most of the times. The reason is, that normally, the InterOP layer creates a wrapper object to avoid any problems running in non EN-US locales. &lt;br /&gt;&lt;br /&gt;Due to this behavior, I faced one problem. I was not able to obtain the Type Name of application' selection object because the selection object was coming as a proxy wrapper. I tried something like this : &lt;br /&gt;&lt;br /&gt;Dim selectionType as string&lt;br /&gt;&lt;br /&gt;selectionType = Information.TypeName(xlApp.Selection)&lt;br /&gt;&lt;br /&gt;The above line was giving a System.Reflection.TargetInvocationException. I had to change my project's setting to ensure that the InterOp variables are not proxy objects. For that, I went to MyProject folder in my solution, opened the AssemblyInfo.vb file, change the attribute &lt; Assembly: ExcelLocale1033(True) &gt; set to &lt; Assembly: ExcelLocale1033(False) &gt; and saved the file. And see the difference, it didn't give me a proxy object :)&lt;br /&gt;&lt;br /&gt;See the following thread For the example:&lt;br /&gt;&lt;a href="http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/17ebd235-ccad-4f0e-89e2-030bff2f12d4?prof=required&amp;wa=wsignin1.0&amp;ppud=4"&gt;&lt;font color="Red"&gt;MSDN VSTO Thread Link&lt;/font&gt;&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-3150458596811227087?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/3150458596811227087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=3150458596811227087&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/3150458596811227087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/3150458596811227087'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2009/04/problem-in-using-informationtypename.html' title='Problem in using Information.TypeName Property'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-8366315868358373444</id><published>2009-03-30T22:34:00.036-07:00</published><updated>2010-07-12T04:31:46.539-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='With Events'/><category scheme='http://www.blogger.com/atom/ns#' term='Chart.Activate() Event'/><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Chart Events'/><title type='text'>Using WithEvents in Vb.Net</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;Using withEvents in VB.net is very easy. I faced lot of problem while accessing the events. For example, activating a chart does not fire a selection change event. I had to do something like whenever I select my chart, my custom menu should appear. I couldn't find doing it in C#(please send a mail if you find it), but in VB.Net it is very easy. &lt;br /&gt;&lt;br /&gt;So to take a small example, I have taken a scenario, if I select any of the chart in my workbook, it should display a message. So first of all I created a Class ProxyCharts. The purpose of the class is to serve a Wrapper for Charts Object. This is the class where we will bind our chart objects to WithEvent keyword. So as a wrapper, we will have as many Wrappers as the number of charts available in the workbook. The proxy chart is as follows: &lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;Public Class ProxyCharts&lt;br /&gt;    Private WithEvents _Charts As Chart&lt;br /&gt;&lt;br /&gt;    Public WriteOnly Property _Chart() As Chart&lt;br /&gt;        Set(ByVal value As Chart)&lt;br /&gt;            _Charts = value&lt;br /&gt;        End Set&lt;br /&gt;    End Property&lt;br /&gt;&lt;br /&gt;    Private Sub _Charts_Activate() Handles _Charts.Activate&lt;br /&gt;        MsgBox(_Charts.Name, MsgBoxStyle.Exclamation, &amp;quot;ActivatedChart&amp;quot;)&lt;br /&gt;    End Sub&lt;br /&gt;End Class&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now we have to bind every chart in the workbook with the ProxyChart. So I added a WorkbookOpen method in my AddIn, which loops to all the charts in the opened workbook. &lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;Private Sub _App_WorkbookOpen(ByVal Wb As Microsoft.Office.Interop.Excel.Workbook) Handles _App.WorkbookOpen&lt;br /&gt;&lt;br /&gt;        Dim chrtCol As Object&lt;br /&gt;        Dim chtCollection As Collection&lt;br /&gt;        Dim chrtObj As ChartObjects&lt;br /&gt;&lt;br /&gt;        For Each wkSht As Worksheet In Wb.Worksheets&lt;br /&gt;            chrtCol = wkSht.ChartObjects(Type.Missing)&lt;br /&gt;            chrtObj = TryCast(chrtCol, ChartObjects)&lt;br /&gt;&lt;br /&gt;            If Not chrtObj Is Nothing Then&lt;br /&gt;                For Each chrt As ChartObject In chrtObj&lt;br /&gt;                    Dim chh As New ProxyCharts()&lt;br /&gt;                    chh._Chart = chrt.Chart&lt;br /&gt;                Next chrt&lt;br /&gt;            End If&lt;br /&gt;        Next wkSht&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;As soon as a workbook is opened, the WorkbookOpen method is called by default and binds all the charts in the opened workbook with ProxyChartType. After binding, the above code will display a message as soon as you select any of the pre existing charts in workbook.&lt;br /&gt;&lt;br /&gt;Hope this helps. &lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-8366315868358373444?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/8366315868358373444/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=8366315868358373444&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/8366315868358373444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/8366315868358373444'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2009/03/using-withevents-in-vbnet.html' title='Using WithEvents in Vb.Net'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-3261619535745718498</id><published>2009-03-26T05:23:00.021-07:00</published><updated>2009-03-26T06:05:56.799-07:00</updated><title type='text'>Linq Example for Group Join</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;I have just started bringing LINQs to my work, and learning some new things. So I thought I will store it here before I forget it ;)&lt;br /&gt;&lt;br /&gt;I had a simple problem, where in I had to loop through a list of files and to get out few Extensions. For example, If I have a list of around 500 files in the drive, I need to get the files with some valid extension, for eg, Images. So for that, I created a files list with the name of &lt;font Color="CC0033"&gt;fileList&lt;/font&gt; and created an array with the valid extensions. I named that array by &lt;font Color="CC0033"&gt;IMAGES&lt;/font&gt;.&lt;br /&gt;&lt;br /&gt;Now to get the list of files with valid extensions I used the following code:&lt;br /&gt;&lt;br /&gt;&lt;font Color="CC0033"&gt;&lt;br /&gt;Dim result = From s In fileList Group Join p In IMAGES On s.Extension.ToUpper() Equals p.ToUpper() _ Into Group From p In Group Select s&lt;/font&gt;&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-3261619535745718498?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/3261619535745718498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=3261619535745718498&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/3261619535745718498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/3261619535745718498'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2009/03/linq-example-for-group-join.html' title='Linq Example for Group Join'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-3509161691796244824</id><published>2009-03-26T00:28:00.006-07:00</published><updated>2009-05-20T05:43:54.434-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='Listview'/><category scheme='http://www.blogger.com/atom/ns#' term='Display Images in Listview'/><category scheme='http://www.blogger.com/atom/ns#' term='Fish Eye effect for Images'/><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Fish Eye Effect'/><category scheme='http://www.blogger.com/atom/ns#' term='WPF Fish Eye Effect'/><category scheme='http://www.blogger.com/atom/ns#' term='FishEye'/><category scheme='http://www.blogger.com/atom/ns#' term='Fish Eye'/><title type='text'>WPF Fish Eye Effect</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;I had a fantasy for Fish Eye effect, and I always have wondered how I will be able to do it one day. But guess what, it is barely simple. I didnt have to do anything much to do it. I am going to explain here in detail about the concept I followed:&lt;br /&gt;&lt;br /&gt;&lt;Font Color = "Pink"&gt;Edited on : &lt;/Font&gt; &lt; May 20th 5.15 PM &gt; Finally, I have got the way to store my projects with in my office. So please download it from &lt;br /&gt;&lt;a href="http://wpffisheye.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=27575"&gt;&lt;strong&gt;&lt;em&gt;Here&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;First of all, in Xaml, I have a listview with the Following Code:&lt;br /&gt;&lt;br /&gt;&lt;font color = "#C12267"&gt;&lt;br /&gt;&lt;br /&gt;&lt; ListView Name="lvwCharts" ItemsSource="{ Binding }" Margin="0,49,0,0"&gt;&lt;br /&gt;            &lt; ListView.ItemTemplate&gt;&lt;br /&gt;                            &lt; DataTemplate&gt;&lt;br /&gt;                                &lt; Grid Width="250"&gt;&lt;br /&gt;                                    &lt; StackPanel&gt;&lt;br /&gt;                                    &lt; Label Background="AliceBlue" HorizontalAlignment="Stretch" BorderBrush="Black" BorderThickness="1" &lt;br /&gt;                                           Content="{Binding Path = Name}" /&gt;&lt;br /&gt;                                    &lt;br /&gt;                                    &lt; Image Name="imgChart" &lt;br /&gt;                                           Height="{Binding Path = Height}" &lt;br /&gt;                                           Width="{Binding Path = Width}" &lt;br /&gt;                                           Source ="{Binding Path = Path, Converter={StaticResource converter}}"&lt;br /&gt;                                           MouseEnter="imgChart_MouseEnter"&lt;br /&gt;                                           MouseLeave="imgChart_MouseLeave"&lt;br /&gt;                                           MouseLeftButtonDown="imgChart_MouseLeftButtonDown"&lt;br /&gt;                                           HorizontalAlignment="Center"&lt;br /&gt;                                           VerticalAlignment="Center"&lt;br /&gt;                                           MouseWheel="imgChart_MouseWheel"&lt;br /&gt;                                           Margin="0"&lt;br /&gt;                                           /&gt;&lt;br /&gt;                                        &lt; /StackPanel&gt;&lt;br /&gt;                                &lt; /Grid&gt;&lt;br /&gt;                            &lt; /DataTemplate&gt;&lt;br /&gt;                &lt; /ListView.ItemTemplate&gt;&lt;br /&gt;            &lt;br /&gt;        &lt; /ListView&gt;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;For Binding the object with the listview, create a class with the Chart Proxy&lt;br /&gt;&lt;br /&gt;&lt;font color = "#C12267"&gt;&lt;br /&gt;Public Class ChartsProxy&lt;br /&gt;    Private _name As String&lt;br /&gt;    Private _group As String&lt;br /&gt;    Private _height As Double = 100&lt;br /&gt;    Private _path As String&lt;br /&gt;    Private _width As Double = 100&lt;br /&gt;&lt;br /&gt;    Public Sub New(ByVal name As String, ByVal path As String, ByVal group As String, ByVal height As Double)&lt;br /&gt;        _name = name&lt;br /&gt;        _group = group&lt;br /&gt;        _path = path&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Public Property Name() As String&lt;br /&gt;        Get&lt;br /&gt;            Return _name&lt;br /&gt;        End Get&lt;br /&gt;        Set(ByVal value As String)&lt;br /&gt;            _name = value&lt;br /&gt;        End Set&lt;br /&gt;    End Property&lt;br /&gt;&lt;br /&gt;    Public Property Group() As String&lt;br /&gt;        Get&lt;br /&gt;            Return _group&lt;br /&gt;        End Get&lt;br /&gt;        Set(ByVal value As String)&lt;br /&gt;            _group = value&lt;br /&gt;        End Set&lt;br /&gt;    End Property&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    Public Property Path() As String&lt;br /&gt;        Get&lt;br /&gt;            Return _path&lt;br /&gt;        End Get&lt;br /&gt;        Set(ByVal value As String)&lt;br /&gt;            _path = value&lt;br /&gt;        End Set&lt;br /&gt;    End Property&lt;br /&gt;&lt;br /&gt;    Public Property Height() As Double&lt;br /&gt;        Get&lt;br /&gt;            Return _height&lt;br /&gt;        End Get&lt;br /&gt;        Set(ByVal value As Double)&lt;br /&gt;            _height = value&lt;br /&gt;        End Set&lt;br /&gt;    End Property&lt;br /&gt;&lt;br /&gt;    Public Property Width() As Double&lt;br /&gt;        Get&lt;br /&gt;            Return _width&lt;br /&gt;        End Get&lt;br /&gt;        Set(ByVal value As Double)&lt;br /&gt;            _width = value&lt;br /&gt;        End Set&lt;br /&gt;    End Property&lt;br /&gt;&lt;br /&gt;End Class&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;And in your Xaml.vb class add the following two Event handlers&lt;br /&gt;&lt;br /&gt;&lt;font color = "#C12267"&gt;&lt;br /&gt;&lt;br /&gt;Private Sub imgChart_MouseLeftButtonDown(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseButtonEventArgs)&lt;br /&gt;        Dim img As Image&lt;br /&gt;        Dim proxy As ChartsProxy&lt;br /&gt;        Dim index As Integer = -1&lt;br /&gt;        img = TryCast(sender, Image)&lt;br /&gt;&lt;br /&gt;        If Not img Is Nothing Then&lt;br /&gt;            proxy = GetParent(img)&lt;br /&gt;&lt;br /&gt;            If Not proxy Is Nothing Then&lt;br /&gt;                index = lvwCharts.Items.IndexOf(proxy)&lt;br /&gt;                lvwCharts.SelectedIndex = index&lt;br /&gt;            End If&lt;br /&gt;&lt;br /&gt;        End If&lt;br /&gt;        lvwCharts.Focus()&lt;br /&gt;        lvwCharts.Items.Refresh()&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;Private Sub imgChart_MouseLeave(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseEventArgs)&lt;br /&gt;        Dim img As Image&lt;br /&gt;        Dim proxy As ChartsProxy&lt;br /&gt;&lt;br /&gt;        img = TryCast(sender, Image)&lt;br /&gt;&lt;br /&gt;        If Not img Is Nothing Then&lt;br /&gt;            proxy = GetParent(img)&lt;br /&gt;&lt;br /&gt;            If Not proxy Is Nothing Then&lt;br /&gt;                Dim widthAnimation As DoubleAnimation = New DoubleAnimation()&lt;br /&gt;                widthAnimation.From = proxy.Width&lt;br /&gt;                widthAnimation.To = proxy.Width - 70&lt;br /&gt;                proxy.Width = proxy.Width - 70&lt;br /&gt;                widthAnimation.Duration = TimeSpan.FromSeconds(0.3)&lt;br /&gt;&lt;br /&gt;                Dim heightAnimation As DoubleAnimation = New DoubleAnimation()&lt;br /&gt;                heightAnimation.From = proxy.Height&lt;br /&gt;                heightAnimation.To = proxy.Height - 50&lt;br /&gt;                heightAnimation.Duration = TimeSpan.FromSeconds(0.3)&lt;br /&gt;                proxy.Height = proxy.Height - 50&lt;br /&gt;                img.BeginAnimation(Image.HeightProperty, heightAnimation)&lt;br /&gt;                img.BeginAnimation(Image.WidthProperty, widthAnimation)&lt;br /&gt;&lt;br /&gt;            End If&lt;br /&gt;&lt;br /&gt;        End If&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        'lvwCharts.Items.Refresh()&lt;br /&gt;&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt; Public Function GetParent(ByVal img As Image) As ChartsProxy&lt;br /&gt;        Dim proxy As ChartsProxy = Nothing&lt;br /&gt;        Dim prop As DependencyObject&lt;br /&gt;        Dim presenter As ContentPresenter&lt;br /&gt;        Dim bool As Boolean = True&lt;br /&gt;&lt;br /&gt;        prop = VisualTreeHelper.GetParent(img)&lt;br /&gt;&lt;br /&gt;        While bool&lt;br /&gt;            presenter = TryCast(prop, ContentPresenter)&lt;br /&gt;&lt;br /&gt;            If (Not presenter Is Nothing) Then&lt;br /&gt;&lt;br /&gt;                proxy = TryCast(presenter.Content, ChartsProxy)&lt;br /&gt;&lt;br /&gt;                If Not proxy Is Nothing Then&lt;br /&gt;                    bool = False&lt;br /&gt;                Else&lt;br /&gt;                    prop = VisualTreeHelper.GetParent(prop)&lt;br /&gt;                End If&lt;br /&gt;&lt;br /&gt;            Else&lt;br /&gt;                prop = VisualTreeHelper.GetParent(prop)&lt;br /&gt;            End If&lt;br /&gt;&lt;br /&gt;        End While&lt;br /&gt;&lt;br /&gt;        Return proxy&lt;br /&gt;    End Function&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;Font Color = "Pink"&gt;Edited on : &lt;/Font&gt; &lt; May 15th 2.13 PM &gt; : As I have posted a very basic version here...if you want a complete code then send a mail at &lt;A href = "mailto:vikasbhandari2@gmail.com"&gt;vikasbhandari2@gmail.com&lt;/a&gt;. I will send you a complete project.&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-3509161691796244824?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/3509161691796244824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=3509161691796244824&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/3509161691796244824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/3509161691796244824'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2009/03/wpf-fish-eye-effect.html' title='WPF Fish Eye Effect'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-7912215215577153412</id><published>2009-03-24T01:13:00.017-07:00</published><updated>2009-04-01T20:40:33.867-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Word 2003 Formatting'/><category scheme='http://www.blogger.com/atom/ns#' term='Word 2003 Styles'/><title type='text'>Word 2003 Style Tracking Issue</title><content type='html'>In word 2003 or ealier versions, whenever we format a text on which a style is already applied, a new style is added in the Styles list and it keeps on increasing if we dont delete it. However, we can stop this automatic tracking and the automatic addition of styles will be disabled. For disabling the automatic addition of styles, go to Tools--&gt;Options --&gt; Edit tab and uncheck "&lt;strong&gt;&lt;em&gt;Keep Track of Formatting&lt;/em&gt;&lt;/strong&gt;" option. It is shown in the figure below&lt;br&gt; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_qXtQEx5SYuw/SciXnD8T7QI/AAAAAAAAAF8/vhkQZ-cnQos/s1600-h/WordStyles.PNG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 281px; height: 320px;" src="http://2.bp.blogspot.com/_qXtQEx5SYuw/SciXnD8T7QI/AAAAAAAAAF8/vhkQZ-cnQos/s320/WordStyles.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5316666057439833346" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-7912215215577153412?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/7912215215577153412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=7912215215577153412&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/7912215215577153412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/7912215215577153412'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2009/03/disabling-word-2003-automatic-style.html' title='Word 2003 Style Tracking Issue'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_qXtQEx5SYuw/SciXnD8T7QI/AAAAAAAAAF8/vhkQZ-cnQos/s72-c/WordStyles.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-3123220049869234562</id><published>2009-03-19T20:44:00.047-07:00</published><updated>2009-07-24T00:42:53.500-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF And Predicates'/><title type='text'>Filter using Predicate (WPF)</title><content type='html'>In WPF, XAML has changed the traditional way of creating and validation the form fields. For example, what if we want to display few of the items in a listview? And what if we want to give user an option to view the items with in the listview?&lt;br /&gt;&lt;br /&gt;Without WPF, we will create the loop through all the items and will hide/show the items accordingly. But with WPF, we can do it very easily. I will explain in the following example.&lt;br /&gt;&lt;br /&gt;Create a class SampleClass with Two Properties, Name(of string type) and Visible(of boolean type)&lt;br /&gt;&lt;br /&gt;Create an ObservableCollection of type SampleClass in your Xaml.cs.&lt;br /&gt;&lt;br /&gt;Code : ObservableCollection&lt; SampleClass &gt; collection = new ObservableCollection &lt;SampleClass &gt;()&lt;br /&gt;&lt;br /&gt;Add few Items : &lt;br /&gt;&lt;br /&gt;collection.Add(new SampleClass("Vikas", true));&lt;br /&gt;collection.Add(new SampleClass("Sonia", true));&lt;br /&gt;collection.Add(new SampleClass("Viman", False));&lt;br /&gt;collection.Add(new SampleClass("Krishna", False));&lt;br /&gt;&lt;br /&gt;Add the collection to our listview&lt;br /&gt;&lt;br /&gt;myListView.DataContext = collection.&lt;br /&gt;&lt;br /&gt;Now, for having a smooth access on filtering, sorting etc features, we will need to get the &lt;a href="http://marlongrech.wordpress.com/2008/11/22/icollectionview-explained/"&gt;ICollectionView(Click to know more about ICollectionView)&lt;/a&gt; object out of out observable collection. &lt;br /&gt;&lt;br /&gt;ICollectionView view = CollectionViewSource.GetDefaultView(collection);&lt;br /&gt;&lt;br /&gt;now, to apply the filter we can use the following line anywhere in the code where in we want to put a filter on:&lt;br /&gt;&lt;br /&gt;view.Filter  = delegate(object item)&lt;br /&gt;{&lt;br /&gt;   SampleClass sItem = item as SampleClass;&lt;br /&gt;   bool retValue = false;&lt;br /&gt;&lt;br /&gt;   if(sItem!=null)&lt;br /&gt;   {&lt;br /&gt;      retValue = sItem.Visible;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   return retValue;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;We can do the above step by using a new method with the predicate as well.&lt;br /&gt;&lt;br /&gt;private bool GetVisibleState(object item)&lt;br /&gt;{&lt;br /&gt;   SampleClass sItem = item as SampleClass;&lt;br /&gt;   bool retValue = false;&lt;br /&gt;&lt;br /&gt;   if(sItem!=null)&lt;br /&gt;   {&lt;br /&gt;      retValue = sItem.Visible;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   return retValue;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;And add the filter like following :&lt;br /&gt;&lt;br /&gt;view.Filter = new Predicate&lt; object &gt;(GetVisibleState);&lt;br /&gt;&lt;br /&gt;The above code will show the items in which the Visible property is set to true.&lt;br /&gt;&lt;br /&gt;The code in VB.net is as follows : &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Dim view As ICollectionView&lt;br /&gt;Dim collection As ObservableCollection(Of SampleClass) = New ObservableCollection(Of SampleClass)&lt;br /&gt;&lt;br /&gt;        collection.Add(New SampleClass("Vikas", True))&lt;br /&gt;        collection.Add(New SampleClass("Sonia", True))&lt;br /&gt;        collection.Add(New SampleClass("Viman", False))&lt;br /&gt;        collection.Add(New SampleClass("Krishna", False))&lt;br /&gt;&lt;br /&gt;        myListView.DataContext = collection&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        view = CollectionViewSource.GetDefaultView(collection)&lt;br /&gt; view.Filter = New Predicate(Of Object)(AddressOf FilterItems)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    Private Function FilterItems(ByVal param As Object) As Boolean&lt;br /&gt;&lt;br /&gt;        Dim proxy As SampleClass&lt;br /&gt;        Dim Name As String&lt;br /&gt;        Dim retValue As Boolean&lt;br /&gt;&lt;br /&gt; Name = combovalue ' (some arbit value, which you want to use as a filter. Example, the if you want to filter the value if the name is vikas, then say name = "Vikas")&lt;br /&gt;&lt;br /&gt;        proxy = TryCast(param, SampleClass)&lt;br /&gt;        retValue = proxy.Show&lt;br /&gt;&lt;br /&gt;        Return retValue&lt;br /&gt;&lt;br /&gt;    End Function&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Public Class SampleClass&lt;br /&gt;    Private _name As String&lt;br /&gt;    Private _show As Boolean&lt;br /&gt;&lt;br /&gt;    Public Sub New(ByVal name As String, ByVal show As Boolean)&lt;br /&gt;        _name = name&lt;br /&gt;        _show = show&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;    Public Property Name() As String&lt;br /&gt;        Get&lt;br /&gt;            Return _name&lt;br /&gt;        End Get&lt;br /&gt;        Set(ByVal value As String)&lt;br /&gt;            _name = value&lt;br /&gt;        End Set&lt;br /&gt;    End Property&lt;br /&gt;&lt;br /&gt;    Public Property Show() As Boolean&lt;br /&gt;        Get&lt;br /&gt;            Return _show&lt;br /&gt;        End Get&lt;br /&gt;        Set(ByVal value As Boolean)&lt;br /&gt;            _show = value&lt;br /&gt;        End Set&lt;br /&gt;    End Property&lt;br /&gt;End Class&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-3123220049869234562?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/3123220049869234562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=3123220049869234562&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/3123220049869234562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/3123220049869234562'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2009/03/how-to-filter-listview-items-using.html' title='Filter using Predicate (WPF)'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-4797758852847547551</id><published>2009-03-18T22:25:00.002-07:00</published><updated>2009-03-18T23:34:55.297-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LINQs'/><title type='text'>How to Use Linqs in VB.Net</title><content type='html'>With the new versions of Visual Studios, we have got the Power of LINQ(Language INtegrated Query). With the help of LINQ, we can make query on any collection like we do in SQL. What if we want to search if a string is present in an array or not. Let me explain this in an example :&lt;br /&gt;&lt;br /&gt;I have a string Array :&lt;br /&gt;&lt;br /&gt;&lt;font Color = "Pink"&gt;&lt;i&gt;Dim validXLExtns() As String = {"XLS", "XLSX", "XLA", "XLAM", "XLSM", "XLTX", "XLT", ""}&lt;br /&gt;&lt;/i&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Now, I have to check programmatically if "XLS" exists in the array or not. Ideally, you will like to loop through the items in the array. But, now, with the help of LINQs you can do it with the following command :&lt;br /&gt;&lt;br /&gt;&lt;font Color = "Pink"&gt;&lt;i&gt; Dim product = From s In validXLExtns _&lt;br /&gt;                                  Where s = "XLS"&lt;br /&gt;&lt;/i&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;And if product.count is greater than 0, the value actually exists in the array.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Some very good examples of LINQs:&lt;br /&gt;&lt;font color = "blue"&gt;&lt;br /&gt;&lt;a href = "http://www.developer.com/net/vb/article.php/3640491"&gt;Developer.com&lt;/a&gt;&lt;br /&gt;&lt;a href = "http://msdn.microsoft.com/en-us/vbasic/bb688088.aspx"&gt;MSDN LINQ Examples&lt;/a&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-4797758852847547551?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/4797758852847547551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=4797758852847547551&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/4797758852847547551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/4797758852847547551'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2009/03/how-to-use-linqs-in-vbnet_18.html' title='How to Use Linqs in VB.Net'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-6561861937108188450</id><published>2008-10-13T04:11:00.000-07:00</published><updated>2009-01-18T02:36:33.616-08:00</updated><title type='text'>Working with Margins in WPF</title><content type='html'>Hi all,&lt;br /&gt;&lt;br /&gt;As we know, that WPF has come up with a new Concept of XAML, the thing which irritated me most while I as learning it, is working with Margins. I, being an average guy, certainly took pretty long to understand how Margin Works. &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; When I start learning WPF, I thought that previous version(Win Forms) is pretty easy and effective as compared to new WPF. But more familiar I got with WPF, I found it more and more effective. &lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;Q. What are Margins?&lt;br /&gt;A. Margins are mere numbers, which decide how far your control will be placed from the boundaries of the parent control/container.&lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;br /&gt;Example: &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt; Grid &gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt; Image Height="40" Margin="0,1,0,0" Name="imgTop" Opacity="1" Stretch="Fill" Style="{DynamicResource formHeaderImageStyle}" VerticalAlignment="Top" /&gt;&lt;br&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt; / Grid &gt;&lt;br /&gt;&lt;br /&gt;Now here, in the above line, it says vertical alignment = Top, that means, the margin will be considered from the top only. Margin 0,1,0,0 means 1 point away from top. Suppose if you want to increase and decrease the height of the control propotionate to the parent container then you can use following code.&lt;br /&gt;&lt;br /&gt;&lt; Grid &gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt; Image Height="40" Margin="0,10,0,10" Name="imgTop" Opacity="1" Stretch="Fill" Style="{DynamicResource formHeaderImageStyle}" VerticalAlignment="Strech" /&gt;&lt;br&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt; / Grid &gt;&lt;br /&gt;&lt;br /&gt;The above code says Vertical alignment  = strech. It means that the image control will be streched according to the margin set and the actual height of the container. The image control will be ten-ten points away from the top and the bottom of the container(Grid in the current case). If the Grid's height is increased, the image's height will be increased to ensure that the bottom is only 10 points aways from the Grid's lower bottom.&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-6561861937108188450?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/6561861937108188450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=6561861937108188450&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/6561861937108188450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/6561861937108188450'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2008/10/working-with-margins-in-wpf.html' title='Working with Margins in WPF'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-6622040922367249424</id><published>2008-08-04T20:17:00.000-07:00</published><updated>2009-01-18T02:49:12.815-08:00</updated><title type='text'>Office 2007 Format</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;Microsoft has brought a revolutionary change in office Application through Office 2007 Launch. The biggest change, for me is its XML Format. Now, Office document is not a mere document anymore. The new office documents behave like a Container too, that means, you can store any data in an office document. For example, you can store any bussiness information in an excel file which will not be visible to users at all. &lt;br /&gt;&lt;br /&gt;I will take an example of a simple excel file, say myExcel.xlsx. If you add a zip extension(convert the name to myExcel.xlsx.zip) and open it with compressed zip folder, you can see that the excel file is a container(a folder) actually. Because, the data in office 2007 is stored in a container in the form of different files. You will see a file named "[Content_Types].xml" and along with few folders(normally three folders). These three folders are the containers where in all the data of the file store in the form of different XML Files. Whatever you will store in the excel file, it will appear in the XML file, one way or another. &lt;br /&gt;&lt;br /&gt;One very good example of how the document is structured or used, is here:&lt;br /&gt;&lt;a href="http://blogs.msdn.com/brian_jones/archive/2005/06/20/430892.aspx"&gt;http://blogs.msdn.com/brian_jones/archive/2005/06/20/430892.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If I include a chart in a sheet, it will create few more xml files. For ex, \xl\charts\chart1.xml. This XML will contain all the data for chart and the formatting of the chart too. It will contain, that how many series does the chart have, what is the range of the chart, what type of chart is it etc. &lt;br /&gt;&lt;br /&gt;Apart of the above features, you can also store your own XML Data in office document. The Office 2007 XML file format accommodates custom business data, and allows for programmatic access to it when files are loaded. So the data in Custom XML will not be directly visible to the user, but you can load it on the runtime and use it programmatically. A very good link from Brian Jones is &lt;a href = "http://blogs.msdn.com/brian_jones/archive/2005/11/04/integrating-with-business-data-store-custom-xml-in-the-office-xml-formats.aspx"&gt;http://blogs.msdn.com/brian_jones/archive/2005/11/04/integrating-with-business-data-store-custom-xml-in-the-office-xml-formats.aspx&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;You can add the CustomXML while using the CustomXMLParts Object (given in the Office Object Model). Here is the link of MSDN &lt;a href="http://msdn.microsoft.com/en-us/library/aa433523.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa433523.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;[Code]&lt;br /&gt;Dim cParts As CustomXMLParts&lt;br /&gt;Set cParts = ThisWorkbook.CustomXMLParts&lt;br /&gt;&lt;br /&gt;Create an xmlFile and save it on desktop. It can contain any information related to your bussiness requirements:&lt;br /&gt;&lt;br /&gt;  &lt; ?xml version="1.0" ? &gt; &lt;br /&gt;  &lt; BhandariInfotech &gt;&lt;br /&gt;  &lt; ChartSheet Id="fChart" &gt;Chart Collection&lt; /ChartSheet &gt; &lt;br /&gt;  &lt; DataSheet Id="fChart" &gt;Data Collection&lt; /DataSheet &gt; &lt;br /&gt;  &lt; ChartSheet Id="sChart" &gt;Charts&lt; /ChartSheet &gt; &lt;br /&gt;  &lt; DataSheet Id="sChart" &gt;Datas&lt; /DataSheet &gt; &lt;br /&gt;  &lt; /BhandariInfotech &gt;&lt;br /&gt;&lt;br /&gt;cParts.Add "C:\A.xml"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[/Code]&lt;br /&gt;&lt;br /&gt;The above data will include the above XML Tags in an XML File and store it in the excel file itself. This data will not be visible to user, but you can use it programmatically to access the data. You can also add your critical Business information, which you have to use in the document, but you don't want the users to see that information. These information can be your revenue figures, your Balance Sheet info...etc. &lt;br /&gt;&lt;br /&gt;The XML Format is very modular and clean too. Every single thing in the Office Documents, is stored in different XML Files. Be it your Chart Data, be it your sheet data, be it your Name ranges...everything is stored in different XML files.  These all files can be accessed programmatically to extend the functionalities of office applications. The idea of keeping all the files separate is to make sure that a user should be able to access a specific type of data, without touching the other files in the container. Earlier, suppose if my one sheet is corrupted, then the other sheets in the workbook will not be effected because the data is kept in separate XML files for different sheets. If I have 200+ sheets in my workbook, and I want to access only one sheet frequently, then opening a workbook with 200+ sheets can be a cumbersum task which will involve long time in opening and closing the workbook again and again. The other option is, access the Office Document Programmatically and copy only that sheet which you require in a new workbook and open that new workbook.  &lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-6622040922367249424?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/6622040922367249424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=6622040922367249424&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/6622040922367249424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/6622040922367249424'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2008/08/office-2007-format.html' title='Office 2007 Format'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-1015444336882960370</id><published>2008-06-30T23:21:00.001-07:00</published><updated>2008-06-30T23:22:22.493-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Office Solutions'/><title type='text'>Getting the object of Running office Application</title><content type='html'>If you want to use the running excel object. You can use the following function:&lt;br /&gt;&lt;br /&gt;        private void getExcelApp()&lt;br /&gt;        {&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                objXlApp = (excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");&lt;br /&gt;            }&lt;br /&gt;            catch&lt;br /&gt;            {&lt;br /&gt;                objXlApp = new excel.Application();&lt;br /&gt;            }&lt;br /&gt;        }&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-1015444336882960370?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/1015444336882960370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=1015444336882960370&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/1015444336882960370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/1015444336882960370'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2008/06/getting-object-of-running-office.html' title='Getting the object of Running office Application'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-1775669770265443957</id><published>2008-06-20T00:35:00.000-07:00</published><updated>2008-06-20T00:36:54.612-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Excel 2007'/><title type='text'>Setting RGB Colors for Excel 2007 Chart Series</title><content type='html'>Sub ColorChartSeriesWithRGB()&lt;br /&gt;Dim chrt As Chart&lt;br /&gt;Dim iSeries As Series&lt;br /&gt;Dim colors(4, 3) As Integer&lt;br /&gt;Dim i As Integer&lt;br /&gt;Set chrt = ActiveChart&lt;br /&gt;colors(1, 1) = 100&lt;br /&gt;colors(1, 2) = 200&lt;br /&gt;colors(1, 3) = 250&lt;br /&gt;colors(2, 1) = 200&lt;br /&gt;colors(2, 2) = 256&lt;br /&gt;colors(2, 3) = 50&lt;br /&gt;colors(3, 1) = 60&lt;br /&gt;colors(3, 2) = 180&lt;br /&gt;colors(3, 3) = 126&lt;br /&gt;colors(4, 1) = 111&lt;br /&gt;colors(4, 2) = 123&lt;br /&gt;colors(4, 3) = 205&lt;br /&gt;i = 1&lt;br /&gt;    For Each iSeries In chrt.SeriesCollection&lt;br /&gt;        iSeries.Format.Fill.ForeColor.RGB = RGB(colors(i, 1), colors(i, 2), colors(i, 3))&lt;br /&gt;        i = i + 1&lt;br /&gt;    Next iSeries&lt;br /&gt;End Sub&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-1775669770265443957?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/1775669770265443957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=1775669770265443957&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/1775669770265443957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/1775669770265443957'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2008/06/setting-rgb-colors-for-excel-2007-chart.html' title='Setting RGB Colors for Excel 2007 Chart Series'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-1113874892618427065</id><published>2008-06-13T07:15:00.000-07:00</published><updated>2010-08-16T09:22:47.083-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ribbon Gallery'/><title type='text'>Gallery Items in Ribbon</title><content type='html'>You can include the following code to implement the Gallery in your Ribbon.&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;&amp;lt;customUI xmlns=&amp;quot;http://schemas.microsoft.com/office/2006/01/customui&amp;quot; loadImage=&amp;quot;LoadImage&amp;quot; &amp;gt;&lt;br /&gt;   &amp;lt;ribbon startFromScratch=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;      &amp;lt;tabs&amp;gt;&lt;br /&gt;         &amp;lt;tab id=&amp;quot;tab1&amp;quot; label=&amp;quot;Gallery Demo&amp;quot; keytip=&amp;quot;x&amp;quot; &amp;gt;&lt;br /&gt;            &amp;lt;group id=&amp;quot;group1&amp;quot; label=&amp;quot;Demo Group&amp;quot;&amp;gt;&lt;br /&gt;               &amp;lt;gallery id=&amp;quot;gallery1&amp;quot; &lt;br /&gt;                  columns=&amp;quot;2&amp;quot; &lt;br /&gt;                  rows=&amp;quot;2&amp;quot; &lt;br /&gt;                  getEnabled=&amp;quot;GetEnabled&amp;quot; &lt;br /&gt;                  getScreentip=&amp;quot;GetScreenTip&amp;quot; &lt;br /&gt;                  supertip=&amp;quot;This is the super tip.&amp;quot; &lt;br /&gt;                  getKeytip=&amp;quot;GetKeyTip&amp;quot; &lt;br /&gt;                  getShowImage=&amp;quot;GetShowImage&amp;quot; &lt;br /&gt;                  getShowLabel=&amp;quot;GetShowLabel&amp;quot;&lt;br /&gt;                  getLabel=&amp;quot;GetLabel&amp;quot; &lt;br /&gt;                  getSize=&amp;quot;GetSize&amp;quot; &lt;br /&gt;                  image=&amp;quot;internetconnection.bmp&amp;quot; &lt;br /&gt;                  getItemCount=&amp;quot;GetItemCount&amp;quot; &lt;br /&gt;                  getItemHeight=&amp;quot;GetItemHeight&amp;quot; &lt;br /&gt;                  getItemWidth=&amp;quot;GetItemWidth&amp;quot; &lt;br /&gt;                  getItemImage=&amp;quot;GetItemImage&amp;quot; &lt;br /&gt;                  getItemLabel=&amp;quot;GetItemLabel&amp;quot; &lt;br /&gt;                  getItemScreentip=&amp;quot;GetItemScreenTip&amp;quot; &lt;br /&gt;                  getItemSupertip=&amp;quot;GetItemSuperTip&amp;quot;  &lt;br /&gt;                  onAction=&amp;quot;galleryOnAction&amp;quot; &amp;gt;&lt;br /&gt;                     &amp;lt;item id=&amp;quot;item1&amp;quot; /&amp;gt;&lt;br /&gt;                     &amp;lt;item id=&amp;quot;item2&amp;quot; /&amp;gt;&lt;br /&gt;                     &amp;lt;item id=&amp;quot;item3&amp;quot; /&amp;gt;&lt;br /&gt;                     &amp;lt;item id=&amp;quot;item4&amp;quot; /&amp;gt;&lt;br /&gt;                     &amp;lt;button id=&amp;quot;button1&amp;quot; getLabel=&amp;quot;GetLabel&amp;quot; &lt;br /&gt;                        onAction=&amp;quot;buttonOnAction&amp;quot; &lt;br /&gt;                        imageMso=&amp;quot;HappyFace&amp;quot; /&amp;gt;&lt;br /&gt;               &amp;lt;/gallery&amp;gt;&lt;br /&gt;            &amp;lt;/group&amp;gt;&lt;br /&gt;         &amp;lt;/tab&amp;gt;&lt;br /&gt;      &amp;lt;/tabs&amp;gt;&lt;br /&gt;   &amp;lt;/ribbon&amp;gt;&lt;br /&gt;&amp;lt;/customUI&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;URL:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb736142.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb736142.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-1113874892618427065?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/1113874892618427065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=1113874892618427065&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/1113874892618427065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/1113874892618427065'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2008/06/gallery-items-in-ribbon.html' title='Gallery Items in Ribbon'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-5600656673661362808</id><published>2008-06-11T01:10:00.000-07:00</published><updated>2008-06-11T01:12:54.669-07:00</updated><title type='text'>Reading Tags in Powerpoint</title><content type='html'>Sub ShowTags()&lt;br /&gt;' Show me the tag name and value for each tag on each shape&lt;br /&gt;' that has a tag on the currently displayed slide&lt;br /&gt;&lt;br /&gt;    Dim x As Long&lt;br /&gt;    Dim oSh As Shape&lt;br /&gt;&lt;br /&gt;    For Each oSh In ActiveWindow.View.Slide.Shapes&lt;br /&gt;        If oSh.Tags.Count &gt; 0 Then&lt;br /&gt;            With oSh.Tags&lt;br /&gt;                For x = 1 To .Count&lt;br /&gt;                    MsgBox oShName &amp; vbtab &amp; .Name(x) &amp; vbTab &amp; .Value(x)&lt;/p&gt;&lt;br /&gt;                Next ' x&lt;br /&gt;            End With&lt;br /&gt;        End If&lt;br /&gt;     Next   ' oSh&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Sub AddTag()&lt;br /&gt;' Adds the tag "TAGNAME" with value "TAGVALUE"&lt;br /&gt;' to the currently selected shape&lt;br /&gt;&lt;br /&gt;    With ActiveWindow.Selection.ShapeRange(1)&lt;br /&gt;        .Tags.Add "TagName", "TagValue"&lt;br /&gt;    End With&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Sub ShowTagValue()&lt;br /&gt;' Displays the current value of tag "TagName" on the selected shape&lt;br /&gt;&lt;br /&gt;    With ActiveWindow.Selection.ShapeRange(1)&lt;br /&gt;        MsgBox .Tags("TagName")&lt;br /&gt;    End With&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Source:&lt;br /&gt;&lt;a href="http://pptfaq.com/FAQ00722.htm"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-5600656673661362808?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/5600656673661362808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=5600656673661362808&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/5600656673661362808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/5600656673661362808'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2008/06/reading-tags-in-powerpoint.html' title='Reading Tags in Powerpoint'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-6814500107721699108</id><published>2008-06-03T02:00:00.000-07:00</published><updated>2008-06-03T02:04:50.514-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Optional Parameters'/><title type='text'>Optional Parameters in C#.net</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;Optional parameters are not supported in C#, so we have to pass a value to every parameter while calling a method. But incase, if we don't want to pass any value to the parameter, we can use the global variable defined as Type.Missing.&lt;br /&gt;&lt;br /&gt;Check the following link of MSDN Site:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/hi-in/library/ms178843(en-us).aspx#ValueTypes"&gt;http://msdn.microsoft.com/hi-in/library/ms178843(en-us).aspx#ValueTypes&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-6814500107721699108?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/6814500107721699108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=6814500107721699108&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/6814500107721699108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/6814500107721699108'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2008/06/optional-parameters-in-cnet.html' title='Optional Parameters in C#.net'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-8480779658613766547</id><published>2008-06-03T01:50:00.000-07:00</published><updated>2008-06-03T01:51:44.931-07:00</updated><title type='text'>How Add-ins Work with the 2007 Microsoft Office System</title><content type='html'>A very good explanation of Add-in architecture in the following library:&lt;br /&gt;&lt;br /&gt;http://msdn.microsoft.com/hi-in/library/bb386298(en-us).aspx&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-8480779658613766547?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/8480779658613766547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=8480779658613766547&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/8480779658613766547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/8480779658613766547'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2008/06/how-add-ins-work-with-2007-microsoft.html' title='How Add-ins Work with the 2007 Microsoft Office System'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-4119504231734857891</id><published>2008-06-01T21:42:00.000-07:00</published><updated>2008-06-03T01:49:34.598-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IDTExtensibility2 Interface'/><title type='text'>IDTExtensilibity2 Procedure to Add Menus</title><content type='html'>Hi all,&lt;br /&gt;&lt;br /&gt;I would describe the procedures/steps that is followed when you try to add menu through IDTExtensilibity2 Interface.&lt;br /&gt;&lt;br /&gt;Whenever office application is opened, it checks whether it can find any DLL registered for the application or not. If it finds any DLL registered, that DLL is loaded in the memory. The DLL is a kind of ADD-In, which is loaded automatically. This process of loading the DLL File, triggers five types of events.&lt;br /&gt;&lt;li&gt; On connection&lt;br /&gt;&lt;li&gt; OnStartupComplete&lt;br /&gt;&lt;li&gt; OnDisconnection&lt;br /&gt;&lt;li&gt; OnBeginShutdown&lt;br /&gt;&lt;li&gt; OnAddInsUpdate&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;To capture these events, your DLL File must implement IDTExtensibility2 Interface. This interface contains the definition of all these events. One can write the code for adding menus in onstartupcomplete method. It will force the application to add Menus after it loads the Add In.&lt;br /&gt;&lt;br /&gt;Hope I was able to clear the process.&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-4119504231734857891?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/4119504231734857891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=4119504231734857891&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/4119504231734857891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/4119504231734857891'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2008/06/creating-menus-from-dll-file.html' title='IDTExtensilibity2 Procedure to Add Menus'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-3959353657924653031</id><published>2008-05-21T03:26:00.000-07:00</published><updated>2008-05-21T04:21:15.363-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Connection Pooling'/><title type='text'>ADO Connection Pooling Fundamentals</title><content type='html'>If you require to open multiple connections several times in your application, it is not a good practice to open the connection every time it's needed because it involves overhead. For overcoming this problem, connection pooling is used. Whenver you close the connection, you mean to destroy the connection object because your work is already done. But, @ the backend, OLEDB preserves it's state in a pool. So whenver you will need the connection again, ADO will not have to do the expensive stuff again to make a connection to the source. Rather, it will pick the connection from the pool and will return the connection object.&lt;br /&gt;&lt;br /&gt;Please note that the connection pooling can only be achieved when the connection information is same. If you are opening a connection with a new ID/password, ADO will open a new connection to avoid security issues.&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-3959353657924653031?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/3959353657924653031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=3959353657924653031&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/3959353657924653031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/3959353657924653031'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2008/05/ado-connection-pooling-fundamentals.html' title='ADO Connection Pooling Fundamentals'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-4398699392394399076</id><published>2008-04-04T07:39:00.000-07:00</published><updated>2008-04-04T07:54:54.117-07:00</updated><title type='text'>Some ADO Fundamentals</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;We all are using ADO quite frequently, but we are not sure if we are using it efficietnly too or not. I have given some information below, which may help you out in managing your queries.&lt;br /&gt;&lt;strong&gt;While getting a recordset from a connection object.&lt;/strong&gt;&lt;br /&gt;Set objRS = objConn.Execute(CommandText, [RecordsAffected],[Your Options])&lt;br /&gt;You can speed up your records fetching process by mentioning the options in the recordset object. Following are the options which are available:&lt;br /&gt;&lt;table border=2&gt;&lt;br /&gt;&lt;tr&gt;&lt;td valign=top&gt;&lt;strong&gt;adCmdText&lt;/td&gt;&lt;td valign=top&gt;&lt;strong&gt; If you have given the Command Text as a SQL string.&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign=top&gt;&lt;strong&gt;adCmdTable&lt;/strong&gt;&lt;/td&gt;&lt;td valign=top&gt;&lt;strong&gt; It is a sign that query would return the column names of the table.&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign=top&gt;&lt;strong&gt;adCmdTableDirect&lt;/strong&gt;&lt;/td&gt;&lt;td valign=top&gt;&lt;strong&gt;for a table name, whose columns are all returned.&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign=top&gt;&lt;strong&gt;adCmdStoredProc&lt;/strong&gt;&lt;/td&gt;&lt;td valign=top&gt;&lt;strong&gt; for a stored procedure name.&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;adCmdFile&lt;/strong&gt;&lt;/td&gt;&lt;td valign=top&gt;&lt;strong&gt; for a saved recordset.&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;adCmdUnknown&lt;/td&gt;&lt;td valign=top&gt;&lt;strong&gt; for an unknown command type.&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign=top&gt;&lt;strong&gt;adCmdUnspecified&lt;/strong&gt;&lt;/td&gt;&lt;td valign=top&gt;&lt;strong&gt; to indicate the command type is unspecified. ADO will work out the command type itself, but this will lead to poorer performance, so you should always explicitly set the command type.&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;You can also add the following ExecuteOptionEnum modifiers to Options:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;adAsyncExecute, for asynchronous execution.&lt;br /&gt;adAsyncFetch, for asynchronous fetching.&lt;br /&gt;adAsyncFetchNonBlocking, for asynchronous fetching that does not block.&lt;br /&gt;adExecuteNoRecords, for a non-row returning command.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas Bhandari&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-4398699392394399076?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/4398699392394399076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=4398699392394399076&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/4398699392394399076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/4398699392394399076'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2008/04/some-ado-fundamentals.html' title='Some ADO Fundamentals'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-330615812773899585</id><published>2008-04-04T06:26:00.000-07:00</published><updated>2008-04-04T07:56:05.565-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Creating Custom Menus in Excel through VBA'/><title type='text'>Creating Custom Menus in Excel through VBA</title><content type='html'>Source : &lt;br /&gt;&lt;a href="http://www.ozgrid.com/VBA/custom-menus.htm"&gt; http://www.ozgrid.com/VBA/custom-menus.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;font face = "verdana" size = 1&gt;&lt;br /&gt;Sub AddMenus()&lt;br /&gt;Dim cMenu1 As CommandBarControl&lt;br /&gt;Dim cbMainMenuBar As CommandBar&lt;br /&gt;Dim iHelpMenu As Integer&lt;br /&gt;Dim cbcCutomMenu As CommandBarControl&lt;br /&gt;&lt;br /&gt;'(1)Delete any existing one. We must use On Error Resume next _&lt;br /&gt; in case it does not exist.&lt;br /&gt;On Error Resume Next&lt;br /&gt;Application.CommandBars("Worksheet Menu Bar").Controls("&amp;New Menu").Delete&lt;br /&gt;On Error GoTo 0&lt;br /&gt;&lt;br /&gt;'(2)Set a CommandBar variable to Worksheet menu bar&lt;br /&gt; Set cbMainMenuBar = _&lt;br /&gt;     Application.CommandBars("Worksheet Menu Bar")&lt;br /&gt;     &lt;br /&gt;'(3)Return the Index number of the Help menu. We can then use _&lt;br /&gt; this to place a custom menu before.&lt;br /&gt; iHelpMenu = _&lt;br /&gt;     cbMainMenuBar.Controls("Help").Index&lt;br /&gt;     &lt;br /&gt; '(4)Add a Control to the "Worksheet Menu Bar" before Help.&lt;br /&gt; 'Set a CommandBarControl variable to it&lt;br /&gt; Set cbcCutomMenu = _&lt;br /&gt;     cbMainMenuBar.Controls.Add(Type:=msoControlPopup, _&lt;br /&gt;                  Before:=iHelpMenu)&lt;br /&gt;                  &lt;br /&gt;     '(5)Give the control a caption&lt;br /&gt;     cbcCutomMenu.Caption = "&amp;New Menu"&lt;br /&gt;     &lt;br /&gt; '(6)Working with our new Control, add a sub control and _&lt;br /&gt; give it a Caption and tell it which macro to run (OnAction).&lt;br /&gt; With cbcCutomMenu.Controls.Add(Type:=msoControlButton)&lt;br /&gt;                .Caption = "Menu 1"&lt;br /&gt;                .OnAction = "MyMacro1"&lt;br /&gt; End With&lt;br /&gt; '(6a)Add another sub control give it a Caption _&lt;br /&gt;  and tell it which macro to run (OnAction)&lt;br /&gt; With cbcCutomMenu.Controls.Add(Type:=msoControlButton)&lt;br /&gt;                .Caption = "Menu 2"&lt;br /&gt;                .OnAction = "MyMacro2"&lt;br /&gt; End With&lt;br /&gt;  'Repeat step "6a" for each menu item you want to add.&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-330615812773899585?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/330615812773899585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=330615812773899585&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/330615812773899585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/330615812773899585'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2008/04/creating-custom-menus-in-excel-through.html' title='Creating Custom Menus in Excel through VBA'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-8326768850460598043</id><published>2008-04-04T06:24:00.000-07:00</published><updated>2008-04-04T06:26:01.910-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Creating Custom Menus in Power Point'/><title type='text'>Creating Custom Menus in Power Point</title><content type='html'>A very good link to learn about Powerpoint.&lt;br /&gt;&lt;br /&gt;http://www.bettersolutions.com/powerpoint/PBZ143/LE824411712.htm&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-8326768850460598043?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/8326768850460598043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=8326768850460598043&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/8326768850460598043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/8326768850460598043'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2008/04/creating-custom-menus-in-power-point.html' title='Creating Custom Menus in Power Point'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-966653529476372696</id><published>2008-04-03T06:34:00.001-07:00</published><updated>2009-02-28T04:21:46.645-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Adding an item in Right Click Menu.'/><title type='text'>Adding an item in Right Click Menu.</title><content type='html'>&lt;code&gt;&lt;br /&gt;Option Explicit&lt;br /&gt;&lt;br /&gt;Private Sub Workbook_Open()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Call addButton&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Call addButton&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Sub addButton()&lt;br /&gt;Dim cBut&lt;br /&gt;On Error Resume Next&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Application.CommandBars("Cell").Controls("RightClickMenu").Delete&lt;br /&gt;On Error GoTo 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Set cBut = Application.CommandBars("Cell").Controls.Add(Temporary:=True)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;With cBut&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.Caption = "RighClickMenu"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.Style = msoButtonCaption&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.OnAction = "MacroName"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End With&lt;br /&gt;End Sub&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Someone asked for help for creating a submenu in the right click menu. For example, An item like ColorRange in the right click pop up menu, and if you go over it, then it gives option to color the cells. &lt;br /&gt;&lt;br /&gt;Following is the code for that:&lt;br /&gt;&lt;br /&gt;Write the following code in the workbooks open method to add the item automatically once you open the workbook.&lt;br /&gt;&lt;br /&gt;&lt;font color = "blue"&gt;&lt;i&gt;&lt;br /&gt;&lt;br /&gt;Sub addButton()&lt;br /&gt;Dim cBut As CommandBarPopup&lt;br /&gt;Dim pic As PictureFormat&lt;br /&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;    Application.CommandBars("Cell").Controls("RightClickMenu").Delete&lt;br /&gt;On Error GoTo 0&lt;br /&gt;    Set cBut = Application.CommandBars("Cell").Controls.Add(Type:=msoControlPopup, temporary:=True)&lt;br /&gt;    &lt;br /&gt;    With cBut&lt;br /&gt;        .Caption = "Color Menu"&lt;br /&gt;    End With&lt;br /&gt;&lt;br /&gt;Dim red As CommandBarButton&lt;br /&gt;Dim blue As CommandBarButton&lt;br /&gt;Dim green As CommandBarButton&lt;br /&gt;Dim black As CommandBarButton&lt;br /&gt;    &lt;br /&gt;    Set red = cBut.Controls.Add(temporary:=True)&lt;br /&gt;    Set blue = cBut.Controls.Add(temporary:=True)&lt;br /&gt;    Set green = cBut.Controls.Add(temporary:=True)&lt;br /&gt;    Set black = cBut.Controls.Add(temporary:=True)&lt;br /&gt;&lt;br /&gt;    red.Caption = "Red"&lt;br /&gt;    blue.Caption = "Blue"&lt;br /&gt;    green.Caption = "Green"&lt;br /&gt;    black.Caption = "Black"&lt;br /&gt;    red.Picture = stdole.LoadPicture("c:\red.bmp")&lt;br /&gt;    green.Picture = stdole.LoadPicture("c:\green.bmp")&lt;br /&gt;    black.Picture = stdole.LoadPicture("c:\black.bmp")&lt;br /&gt;    blue.Picture = stdole.LoadPicture("c:\blue.bmp")&lt;br /&gt;    red.OnAction = "RedColor"&lt;br /&gt;    blue.OnAction = "blueColor"&lt;br /&gt;    green.OnAction = "greenColor"&lt;br /&gt;    black.OnAction = "blackColor"&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Private Sub Workbook_Open()&lt;br /&gt;    Call addButton&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;/i&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Once you are done with the above code, then create a new module and paste the following code in the newly created module.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color = "blue"&gt;&lt;i&gt;&lt;br /&gt;Enum Color&lt;br /&gt;    red&lt;br /&gt;    blue&lt;br /&gt;    green&lt;br /&gt;    black&lt;br /&gt;End Enum&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sub RedColor()&lt;br /&gt;    ColorCell (Color.red)&lt;br /&gt;End Sub&lt;br /&gt;Sub BlueColor()&lt;br /&gt;    ColorCell (Color.blue)&lt;br /&gt;End Sub&lt;br /&gt;Sub GreenColor()&lt;br /&gt;    ColorCell (Color.green)&lt;br /&gt;End Sub&lt;br /&gt;Sub BlackColor()&lt;br /&gt;    ColorCell (Color.black)&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Sub ColorCell(clr As Color)&lt;br /&gt;&lt;br /&gt;Dim rng As Range&lt;br /&gt;Dim sht As Worksheet&lt;br /&gt;Dim typNme As String&lt;br /&gt;&lt;br /&gt;typNme = TypeName(Application.Selection)&lt;br /&gt;&lt;br /&gt;Select Case (typNme)&lt;br /&gt;    Case "Range"&lt;br /&gt;        Set rng = Application.Selection&lt;br /&gt;        &lt;br /&gt;        Select Case (clr)&lt;br /&gt;            Case Color.red&lt;br /&gt;                rng.Interior.Color = ColorConstants.vbRed&lt;br /&gt;            Case Color.black&lt;br /&gt;                rng.Interior.Color = ColorConstants.vbBlack&lt;br /&gt;            Case Color.blue&lt;br /&gt;                rng.Interior.Color = ColorConstants.vbBlue&lt;br /&gt;            Case Color.green&lt;br /&gt;                rng.Interior.Color = ColorConstants.vbGreen&lt;br /&gt;        End Select&lt;br /&gt;End Select&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;/i&gt;&lt;/font&gt;&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-966653529476372696?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/966653529476372696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=966653529476372696&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/966653529476372696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/966653529476372696'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2008/04/adding-item-in-right-click-menu.html' title='Adding an item in Right Click Menu.'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-3195810689258716676</id><published>2008-04-02T04:57:00.000-07:00</published><updated>2008-04-02T05:41:54.767-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Creating Excel Menu from C#.net 2003'/><title type='text'>Creating Excel Menu from Dot net 2003</title><content type='html'>&lt;Code&gt;&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using Microsoft.Office.Interop.Excel;&lt;br /&gt;using Microsoft.Office.Core;&lt;br /&gt;&lt;br /&gt;namespace ConsoleApplication3&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt; class Class1&lt;br /&gt; {&lt;br /&gt; /// &lt;summary&gt;&lt;br /&gt; /// Summary description for Class1.&lt;br /&gt; /// &lt;/summary&gt;&lt;br /&gt; private Application excel= new ApplicationClass();&lt;br /&gt; private Workbook book= null;&lt;br /&gt; private Worksheet sheet = null;&lt;br /&gt; private CommandBar MainMenuBar = null;&lt;br /&gt; private CommandBarControl MenuBarItem = null;&lt;br /&gt; //private CommandBarButton MenuItem = null;&lt;br /&gt; public Class1()&lt;br /&gt; {&lt;br /&gt;  book = excel.Workbooks.Open("C:\\log.xls",0, true, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "",true, false, 0, true, false, false);&lt;br /&gt;  InitMenuBarItems("My Main Menu");&lt;br /&gt;  excel.Visible=true;&lt;br /&gt;  sheet = (Worksheet)book.Sheets.get_Item(1);&lt;br /&gt;  Console.WriteLine("The file name is {0}",sheet.Name);&lt;br /&gt;  Console.ReadLine();&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;  private void InitMenuBarItems(string Caption) &lt;br /&gt;  {&lt;br /&gt;   try &lt;br /&gt;   {&lt;br /&gt;    MainMenuBar = &lt;br /&gt;     excel.CommandBars["Worksheet Menu Bar"];&lt;br /&gt;    MenuBarItem = MainMenuBar.Controls.Add(&lt;br /&gt;     MsoControlType.msoControlPopup, &lt;br /&gt;     Type.Missing, Type.Missing, Type.Missing, true);&lt;br /&gt;    MenuBarItem.Caption = Caption;&lt;br /&gt;&lt;br /&gt;   }&lt;br /&gt;   catch &lt;br /&gt;   {&lt;br /&gt;       &lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  [STAThread]&lt;br /&gt;  static void Main(string[] args)&lt;br /&gt;  {&lt;br /&gt;   Class1 cls = new Class1();&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/Code&gt;&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-3195810689258716676?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/3195810689258716676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=3195810689258716676&amp;isPopup=true' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/3195810689258716676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/3195810689258716676'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2008/04/creating-excel-menu-from-dot-net-2003.html' title='Creating Excel Menu from Dot net 2003'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-4158176660651582384</id><published>2008-04-02T04:31:00.001-07:00</published><updated>2008-04-02T04:31:54.342-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Create and register ADDin to Use in Excel'/><title type='text'>Create and register ADDin to Use in Excel</title><content type='html'>namespace NAddIn&lt;br /&gt;{&lt;br /&gt;    [ClassInterface(ClassInterfaceType.AutoDual)]&lt;br /&gt;    public class Functions&lt;br /&gt;    {&lt;br /&gt;        public Functions()&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public double Add2(double v1, double v2)&lt;br /&gt;        {&lt;br /&gt;            return v1 + v2;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        [ComRegisterFunctionAttribute]&lt;br /&gt;        public static void RegisterFunction(Type t)&lt;br /&gt;        {&lt;br /&gt;            Microsoft.Win32.Registry.ClassesRoot.CreateSubKey(&lt;br /&gt;                "CLSID\\{" + t.GUID.ToString().ToUpper() + &lt;br /&gt;                   "}\\Programmable");&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        [ComUnregisterFunctionAttribute]&lt;br /&gt;        public static void UnregisterFunction(Type t)&lt;br /&gt;        {&lt;br /&gt;            Microsoft.Win32.Registry.ClassesRoot.DeleteSubKey(&lt;br /&gt;                "CLSID\\{" + t.GUID.ToString().ToUpper() + &lt;br /&gt;                  "}\\Programmable");&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Build the NAddIn project to create bin\debug\NAddIn.dll. &lt;br /&gt;Test the Add-In in Excel: &lt;br /&gt;Open a new workbook in Excel. &lt;br /&gt;Select Tools, Add-Ins, Automation. &lt;br /&gt;NAddIn.Functions should be listed - select it. OK. &lt;br /&gt;In a cell, type =Add2(3,4) &lt;br /&gt;The cell should display 7. &lt;br /&gt;To register the .dll after moving it, run regasm with the /codebase flag (typically as c:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\RegAsm /codebase NAddIn.dll). You will get a warning about the assembly being unsigned - you can ignore this (or sign the assembly as documented).&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-4158176660651582384?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/4158176660651582384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=4158176660651582384&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/4158176660651582384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/4158176660651582384'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2008/04/create-and-register-addin-to-use-in.html' title='Create and register ADDin to Use in Excel'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-951277749183092465</id><published>2008-03-26T05:41:00.000-07:00</published><updated>2008-03-26T06:51:56.491-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reading and writing in a TextFile from VBA'/><title type='text'>Reading and writing in a TextFile from VBA</title><content type='html'>Sub LogInformation(LogMessage As String)&lt;br /&gt;Const LogFileName As String = "C:\FOLDERNAME\TEXTFILE.LOG"&lt;br /&gt;Dim txtString as String &lt;br /&gt;Dim FileNum As Integer&lt;br /&gt;    FileNum = FreeFile ' next file number&lt;br /&gt;    Open LogFileName For Append As #FileNum ' creates the file if it doesn't exist&lt;br /&gt;    Print #FileNum, LogMessage ' write information at the end of the text file&lt;br /&gt;    Close #FileNum ' close the file&lt;br /&gt;'For reading the file : &lt;br /&gt;     While not EOF(FileNum)&lt;br /&gt;          Line Input #FileNum, txtString ' txtString contains the line read by the command&lt;br /&gt;     Wend&lt;br /&gt;End Sub&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-951277749183092465?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/951277749183092465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=951277749183092465&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/951277749183092465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/951277749183092465'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2008/03/reading-textfile-from-vba.html' title='Reading and writing in a TextFile from VBA'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-8437341298873557592</id><published>2008-03-25T03:49:00.001-07:00</published><updated>2008-03-25T03:49:33.361-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Import data from a text file (ADO)'/><title type='text'>Import data from a text file (ADO)</title><content type='html'>The procedure below can be used to get an ADO recordset from a text file and fill in the result in a worksheet. &lt;br /&gt;&lt;br /&gt;Sub GetTextFileData(strSQL As String, strFolder As String, rngTargetCell As Range)&lt;br /&gt;' example: GetTextFileData "SELECT * FROM filename.txt", _&lt;br /&gt;              "C:\FolderName", Range("A3")&lt;br /&gt;' example: GetTextFileData "SELECT * FROM filename.txt WHERE fieldname = 'criteria'", _&lt;br /&gt;              "C:\FolderName", Range("A3")&lt;br /&gt;Dim cn As ADODB.Connection, rs As ADODB.Recordset, f As Integer&lt;br /&gt;    If rngTargetCell Is Nothing Then Exit Sub&lt;br /&gt;    Set cn = New ADODB.Connection&lt;br /&gt;    On Error Resume Next&lt;br /&gt;    cn.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};" &amp; _&lt;br /&gt;        "Dbq=" &amp; strFolder &amp; ";" &amp; _&lt;br /&gt;        "Extensions=asc,csv,tab,txt;"&lt;br /&gt;    On Error GoTo 0&lt;br /&gt;    If cn.State &lt;&gt; adStateOpen Then Exit Sub&lt;br /&gt;    Set rs = New ADODB.Recordset&lt;br /&gt;    On Error Resume Next&lt;br /&gt;    rs.Open strSQL, cn, adOpenForwardOnly, adLockReadOnly, adCmdText&lt;br /&gt;    On Error GoTo 0&lt;br /&gt;    If rs.State &lt;&gt; adStateOpen Then&lt;br /&gt;        cn.Close&lt;br /&gt;        Set cn = Nothing&lt;br /&gt;        Exit Sub&lt;br /&gt;    End If&lt;br /&gt;    ' the field headings&lt;br /&gt;    For f = 0 To rs.Fields.Count - 1&lt;br /&gt;        rngTargetCell.Offset(0, f).Formula = rs.Fields(f).Name&lt;br /&gt;    Next f&lt;br /&gt;    rngTargetCell.Offset(1, 0).CopyFromRecordset rs ' works in Excel 2000 or later&lt;br /&gt;    'RS2WS rs, rngTargetCell ' works in Excel 97 or earlier&lt;br /&gt;    rs.Close&lt;br /&gt;    Set rs = Nothing&lt;br /&gt;    cn.Close&lt;br /&gt;    Set cn = Nothing&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The procedure can be used like this:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sub TestGetTextFileData()&lt;br /&gt;    Application.ScreenUpdating = False&lt;br /&gt;    Workbooks.Add&lt;br /&gt;    GetTextFileData "SELECT * FROM filename.txt", "C:\FolderName", Range("A3")&lt;br /&gt;'    GetTextFileData "SELECT * FROM filename.txt WHERE fieldname = 'criteria'", _&lt;br /&gt;        "C:\FolderName", Range("A3")&lt;br /&gt;    Columns("A:IV").AutoFit&lt;br /&gt;    ActiveWorkbook.Saved = True&lt;br /&gt;End Sub&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-8437341298873557592?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/8437341298873557592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=8437341298873557592&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/8437341298873557592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/8437341298873557592'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2008/03/import-data-from-text-file-ado.html' title='Import data from a text file (ADO)'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-7063792071897268569</id><published>2008-03-24T06:45:00.000-07:00</published><updated>2010-07-12T04:37:10.052-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Manipulating the Date Columns in a Pivot'/><title type='text'>Code to View Pivot Data within a date range</title><content type='html'>The following code works on the pivot with the following format :&lt;br /&gt;&lt;table border = 2&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Items &lt;/td&gt;&lt;td&gt;Date1&lt;/td&gt;&lt;td&gt;Date2&lt;/td&gt;&lt;td&gt;Date3&lt;/td&gt;&lt;td&gt;Date4&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Item 1 &lt;/td&gt;&lt;td&gt;Data&lt;/td&gt;&lt;td&gt;Data&lt;/td&gt;&lt;td&gt;Data&lt;/td&gt;&lt;td&gt;Data&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Item 2 &lt;/td&gt;&lt;td&gt;Data&lt;/td&gt;&lt;td&gt;Data&lt;/td&gt;&lt;td&gt;Data&lt;/td&gt;&lt;td&gt;Data&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Item 3 &lt;/td&gt;&lt;td&gt;Data&lt;/td&gt;&lt;td&gt;Data&lt;/td&gt;&lt;td&gt;Data&lt;/td&gt;&lt;td&gt;Data&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Item 4&lt;/td&gt;&lt;td&gt;Data&lt;/td&gt;&lt;td&gt;Data&lt;/td&gt;&lt;td&gt;Data&lt;/td&gt;&lt;td&gt;Data&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Suppose, if you have a combobox with the date range, and you want to show those date columns which fall in the given range, following is the code which you can use. The example takes a week input from the user, where, in the AN Column, the Combobox option is given and in the AO column, the actual date value is given. For example, in AN1 the value is given as February-17 to February-23, and in AO1, the value of Feb 17 is given as 39495.&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;&lt;br /&gt;Public Sub CMBMacro()&lt;br /&gt;Dim prevIndx As Integer&lt;br /&gt;Dim cmbValue As Long&lt;br /&gt;Dim upRange As Long&lt;br /&gt;Dim pivot As PivotTable&lt;br /&gt;Dim pvtItm As PivotItem&lt;br /&gt;Dim ifNum As Long&lt;br /&gt;Dim iCounter As Integer&lt;br /&gt;Dim strngArr() As String&lt;br /&gt;Dim strngCn As String&lt;br /&gt;Dim prvDate As Long&lt;br /&gt;Dim position As Integer&lt;br /&gt;Dim prevItm() As PivotItem&lt;br /&gt;Dim indxChckd As Integer&lt;br /&gt;Dim extDate As Integer&lt;br /&gt;Dim bool As Boolean&lt;br /&gt;indxChckd = Me.Range(&amp;quot;k1&amp;quot;).Value&lt;br /&gt;cmbValue = Me.Range(&amp;quot;AO&amp;quot; &amp;amp; indxChckd).Value - 1 ' It will take the Date selected in the combo.&lt;br /&gt;upRange = cmbValue + 7 'It will add up 7 days to get the upper range of the week.&lt;br /&gt;iCounter = 0&lt;br /&gt;    If Not Application.EnableEvents Then&lt;br /&gt;        Exit Sub&lt;br /&gt;    End If&lt;br /&gt;position = 2&lt;br /&gt;Application.EnableEvents = False&lt;br /&gt;Application.ScreenUpdating = False&lt;br /&gt;Application.Calculation = xlCalculationManual&lt;br /&gt;Set pivot = Me.PivotTables(pvtName)&lt;br /&gt;bool = False&lt;br /&gt;    For Each pvtItm In pivot.PivotFields(&amp;quot;Date&amp;quot;).PivotItems&lt;br /&gt;        If IsDate(pvtItm.Value) And pvtItm.RecordCount &amp;gt; 0 Then&lt;br /&gt;            ifNum = CDate(pvtItm.Value)&lt;br /&gt;            If ifNum &amp;gt; cmbValue And ifNum &amp;lt; upRange Then&lt;br /&gt;                If pvtItm.Visible = False Then pvtItm.Visible = True&lt;br /&gt;                    bool = True&lt;br /&gt;                iCounter = iCounter + 1&lt;br /&gt;            End If&lt;br /&gt;        End If&lt;br /&gt;    Next&lt;br /&gt;    ReDim prevItm(iCounter)&lt;br /&gt;    iCounter = 1&lt;br /&gt;    &lt;br /&gt;    For Each pvtItm In pivot.PivotFields(&amp;quot;Date&amp;quot;).PivotItems&lt;br /&gt;        If IsDate(pvtItm.Value) And pvtItm.RecordCount &amp;gt; 0 Then&lt;br /&gt;            ifNum = CDate(pvtItm.Value)&lt;br /&gt;                If (ifNum &amp;lt;= cmbValue Or ifNum &amp;gt;= upRange) And pvtItm.Visible = True And bool Then&lt;br /&gt;                    pvtItm.Visible = False&lt;br /&gt;                End If&lt;br /&gt;                &lt;br /&gt;                If pvtItm.Visible = True Then&lt;br /&gt;                    Set prevItm(iCounter) = pvtItm&lt;br /&gt;                    iCounter = iCounter + 1&lt;br /&gt;                End If&lt;br /&gt;        End If&lt;br /&gt;    Next&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;************************************************The Following Code sorts the date columns. It is required if the date columns are not sorted by default********* *************************************        &lt;br /&gt;        For position = 1 To UBound(prevItm)&lt;br /&gt;            prvDate = CDate(prevItm(position))&lt;br /&gt;            For iCounter = position + 1 To UBound(prevItm)&lt;br /&gt;                ifNum = CDate(prevItm(iCounter))&lt;br /&gt;                    If prvDate &amp;gt; ifNum Then&lt;br /&gt;                        prevItm(position).position = prevItm(iCounter).position&lt;br /&gt;                    End If&lt;br /&gt;            Next&lt;br /&gt;        Next&lt;br /&gt;        &lt;br /&gt;        If Not bool Then&lt;br /&gt;            MsgBox &amp;quot;No Items Found for this range.&amp;quot;, vbCritical, &amp;quot;Error&amp;quot;&lt;br /&gt;        End If&lt;br /&gt;&lt;br /&gt;Application.EnableEvents = True&lt;br /&gt;Application.ScreenUpdating = True&lt;br /&gt;Application.Calculation = xlCalculationAutomatic&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Hope this has helped you all.&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-7063792071897268569?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/7063792071897268569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=7063792071897268569&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/7063792071897268569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/7063792071897268569'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2008/03/code-to-view-pivot-data-within-date.html' title='Code to View Pivot Data within a date range'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-4411536438527912160</id><published>2007-11-05T00:23:00.000-08:00</published><updated>2007-11-05T00:39:14.600-08:00</updated><title type='text'>Programming with Charts In Excel</title><content type='html'>Chart programming is a little difficult in Excel because Excel itself has some procedures to update charts automatically after any event is fired. For example, After deleting a series, the axes values are automatically changed. Like this, there are lots of cases when you need to trace the Excel Behavior in order to write an efficient Chart Code. I have got some tips, which I learnt which doing the Chart Programming in my recent project:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1.&lt;/strong&gt; If you dont want to plot 0's in your chart, then use NA() for Blank cells. It will remove the 0's in the chart. If you use "" or blank cells, it is considered as 0 in the charts.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2.&lt;/strong&gt; If you have to assign xRange at run time, you will always have to assign it to a series. Assigning xRange goes like this:&lt;br /&gt;&lt;br /&gt;chartobject.seriescollection(1).XValues = Some Range&lt;br /&gt;&lt;br /&gt;SeriesCollection(1) refers to the First series of the chart. You need to assign the xaxis range to any of the active series in the chart. By Active series, I mean, that the assigned Series should have atleast a non error value. Incase if series1 doesnt have any value(either numeric/blank) in any of its ranged cells, then VBA will not be able to find where it needs to plot the xrange and will throw an error.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3.&lt;/strong&gt; If you are assigning the values to a series on RunTime, and the first cell contains Error, VBA throws back an error. So while assigning some values to a chart on RunTime, u have to make sure that the First Element in the series is not any Error Refrences.&lt;br /&gt;&lt;br /&gt;Hope, that was helpful!&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-4411536438527912160?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/4411536438527912160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=4411536438527912160&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/4411536438527912160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/4411536438527912160'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2007/11/programming-with-charts-in-excel.html' title='Programming with Charts In Excel'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-6601806092226072929</id><published>2007-08-03T23:25:00.001-07:00</published><updated>2007-08-03T23:26:43.018-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Color Sorting in Excel'/><title type='text'>Sort by Colors</title><content type='html'>In excel, sorting by colors is not a difficult situation. Anyone with a little knowledge of VBA can write this simple code. Just rush to the following link to read more:&lt;br /&gt;&lt;br /&gt;http://www.cpearson.com/excel/SortByColor.htm&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-6601806092226072929?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/6601806092226072929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=6601806092226072929&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/6601806092226072929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/6601806092226072929'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2007/08/sort-by-colors.html' title='Sort by Colors'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-9086790221349477221</id><published>2007-08-03T23:14:00.000-07:00</published><updated>2010-07-12T04:34:22.614-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fetching data from Oracle quickly with no Time'/><title type='text'>Getting values from Databases quickly.</title><content type='html'>When you request some values from databases in excel, it probably takes few secs. For example, when you get values from Microsoft query section, it takes lesser time as compared to the procedure when you create a connection and enters the values record by record. Its always a better option to fetch the complete table and insert the whole table in excel. If your database is huge, this technique works really well. See the following code:&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;&lt;br /&gt;    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _&lt;br /&gt;         &amp;quot;ODBC;DSN=Your Oracle DSN;DBQ=Your database Service;uid=your account;pwd=your password;DriverId=25;FIL=Oracle;MaxBufferSize=2048;PageTimeout=5;&amp;quot; _&lt;br /&gt;       )), Destination:=Range(&amp;quot;$A$8&amp;quot;)).QueryTable&lt;br /&gt;        .CommandText = qur &amp;lt;-----(write your query like select * from something)&lt;br /&gt;        .RowNumbers = False&lt;br /&gt;        .FillAdjacentFormulas = False&lt;br /&gt;        .PreserveFormatting = True&lt;br /&gt;        .RefreshOnFileOpen = False&lt;br /&gt;        .BackgroundQuery = True&lt;br /&gt;        .RefreshStyle = xlInsertDeleteCells&lt;br /&gt;        .SavePassword = False&lt;br /&gt;        .SaveData = True&lt;br /&gt;        .AdjustColumnWidth = True&lt;br /&gt;        .RefreshPeriod = 0&lt;br /&gt;        .PreserveColumnInfo = True&lt;br /&gt;        .Refresh BackgroundQuery:=False&lt;br /&gt;    End With&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;The above code fetches the data from oracle and enters in the active excel sheet. It will return the table object based on the query you will give in the code, and insert the results in tabular format in no time. If you compare the process with the procedure of connecting and reading the rows one by one through recordset....its going to take 20 times longer than it should usually take!&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-9086790221349477221?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/9086790221349477221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=9086790221349477221&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/9086790221349477221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/9086790221349477221'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2007/08/getting-values-from-databases-quickly.html' title='Getting values from Databases quickly.'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-4281005322272186123</id><published>2007-06-29T23:56:00.001-07:00</published><updated>2007-06-30T00:00:36.510-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Restricting changing non blank cells'/><title type='text'>Macro for restricting users to overwrite the value in a sheet</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;Please download the required macro from here.. Here, if someone will overwrite the value in Sheet1, the macro will ask for password(which is set to vikas now).If you dont enter a correct password, you will not be able to change the cells value.&lt;br /&gt;&lt;br /&gt;URL for File : &lt;a href = "http://www.megashare.com/217876"&gt;Click Here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-4281005322272186123?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/4281005322272186123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=4281005322272186123&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/4281005322272186123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/4281005322272186123'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2007/06/macro-for-restricting-users-to.html' title='Macro for restricting users to overwrite the value in a sheet'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-9175841533920730481</id><published>2006-12-22T03:13:00.000-08:00</published><updated>2007-06-28T13:50:52.209-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Excel Arrays'/><title type='text'>Implementing Arrays in Excel</title><content type='html'>One of the key things in the excel is to compare/find the values in an array....when we specify a range in any function, the excel needs to be intimated that whether we are pointing at a single cell or an array. For example, I am checking that if a single cell is having 0 or not : &lt;br /&gt;&lt;br /&gt;If(B1:b10=0,True,False)...Suppose if I have entered the farmulae in C5....it will check if the value in B5 is 0 or not...but if we want this farmulae to check if every cell in the range b1:b10 is 0 or not....we will have to tell excel to use the range as array..for that after putting the farmulae, press ctrl+Shift+Enter rather than the traditional Enter...&lt;br /&gt;&lt;br /&gt;Want to know more about Excel. Here are some links given by my frnd OldChippy from Excelforum.com(The Maximum Knowledge Forum)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;A href = "http://www.ozgrid.com/Excel/arrays.htm"&gt; http://www.ozgrid.com/Excel/arrays.htm&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.emailoffice.com/excel/arrays-bobumlas.html"&gt;http://www.emailoffice.com/excel/arrays-bobumlas.html&lt;br /&gt;&lt;/a&gt;&lt;a href = "http://www.personal-computer-tutor.c...ayformulas.htm"&gt;http://www.personal-computer-tutor.c...ayformulas.htm&lt;br /&gt;&lt;/a&gt;&lt;A href = "http://www.excel-vba.com/excel-27-array-formulas.htm"&gt;http://www.excel-vba.com/excel-27-array-formulas.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vikas B&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-9175841533920730481?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/9175841533920730481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=9175841533920730481&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/9175841533920730481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/9175841533920730481'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2006/12/implementing-arrays-in-excel.html' title='Implementing Arrays in Excel'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-31012678448039116</id><published>2006-12-21T05:58:00.000-08:00</published><updated>2006-12-22T02:28:00.340-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Excel Function Sum Product'/><title type='text'>Very useful information for Sum Product Function here</title><content type='html'>Do you think you are an excel expert??? May be, but if you are then please try to go to the following URL and check if you really know about this function:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.xldynamic.com/source/xld.SUMPRODUCT.html"&gt;http://www.xldynamic.com/source/xld.SUMPRODUCT.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Wonderful Examples of SumProducts here too :&lt;br /&gt;&lt;br /&gt;&lt;A href = "http://homepage.ntlworld.com/ken.wright/ExSumProduct1.html"&gt;http://homepage.ntlworld.com/ken.wright/ExSumProduct1.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Vikas B&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-31012678448039116?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/31012678448039116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=31012678448039116&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/31012678448039116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/31012678448039116'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2006/12/very-useful-information-for-sum-product.html' title='Very useful information for Sum Product Function here'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1928376702114455780.post-2975056705014492528</id><published>2006-12-21T05:56:00.000-08:00</published><updated>2006-12-21T08:02:03.356-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Free Excel EBook'/><title type='text'>Free Excel Ebook Link</title><content type='html'>Please goto the following URL to get your free copy of excel. You will need to create an account to be eligible for downloading this book:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.exceltip.com/LearnExcel.pdf"&gt;http://www.exceltip.com/LearnExcel.pdf&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;Regards,&lt;br /&gt;Vikas B&lt;div class="blogger-post-footer"&gt;Vikas Bhandar1
(Vikasbhandari2@gmail.com)&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1928376702114455780-2975056705014492528?l=excelnoob.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://excelnoob.blogspot.com/feeds/2975056705014492528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1928376702114455780&amp;postID=2975056705014492528&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/2975056705014492528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1928376702114455780/posts/default/2975056705014492528'/><link rel='alternate' type='text/html' href='http://excelnoob.blogspot.com/2006/12/free-excel-ebook-link.html' title='Free Excel Ebook Link'/><author><name>Excel Power</name><uri>http://www.blogger.com/profile/05983801349001346764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
