Skip to main content

Using Excel VBA Macro to Add Numbering Bullets to Any Data

N.B.: For Code Scroll Down :)

Hello Everyone,
This is Sachin K here again,
Today while at work one of my colleague got into a trouble. He entered a lot of data into a spreadsheet like names of person and data related to their documents in front of their name.

Now all of a sudden he needs to insert a numbering bullets in various rows, similar to one can find in MS Word. Oh !!! Its not there !!!

I thought I could write a simple VBA code instead and make things easy for him.

Here is the situation (Screenshot 1):

You have data in row as seen below from Row No. 2 to Row No. 13.
You want to insert 1) , 2), 3), ..., etc. in front of each data in the same cells as they are.
It easy to put serial in empty cells in front of the data but remember that's not what we want here.

Screenshot 1 : The Problem
Here is the Solution (Screenshot 2):

The VBA Code runs and gives a result as shown in screenshot below

Screenshot 2 : The Solution
The VBA Code and Form used (Screenshot 3 & 4):

 The Solution for the problem is as follows

Screenshot 3 : The Visual Part
   The VBA form used to trigger numbering in excel sheet

Screenshot 4 : The Code
Here is a little explanation on how the code works:

When the user click on "Number IT !!!" Button on user form the Code Starts.

1. The Active Cell (Currently Selected Cell) Row number is stored in variable 'B'. That's starting row number.

2. Do While Loop Checks that Active Cell is empty or not. When the condition is true (Non Empty Active Cell) it follows next line of code, i.e. Stores the Row Number of Currently Selected Cell (Active Cell) to variable 'A'. Initially variables 'B' and 'A' are going to have same value.

3. The ActiveCell.Offset code activates cell on next row and 'loop' code loops this process till empty row is encountered, where Do While Condition is not met and code runs to next section. Remember, now variable 'A' is holding the value of empty row number !!!

4. Now we have row number of start i.e. 'B' and row number of first empty cell after the data 'A'

5. The variable 'C' is defined as difference between empty row and starting row i.e. (A-B). Why we need variable 'C'? We need that number so that we can reach up to the cell where we started. Also, it sets the interval for final numbering. 
Wait Why +1 in the formula? well that's because our Do While condition took us down till an empty cell was reached. So we reached one row below the data !
Hmm that's why formula C = (A-B) +1

5. So we do ActiveCell.Offset to (-C) and activate that cell. That's where our data started somewhere up (hence -C).

6. The we used a For ... Next loop to get the final numbering done.
For a range of values from 1 to 'C' the variable 'i' will run through each value and keep adding the data to cells via a simple code: ActiveCell.Value =  i & ")" & "space" & ActiveCell.Value
then go to next cell by offset method.

It Worked Well for me...!!

Do try for yourself and comment below. :)

The Code:

Private Sub CommandButton1_Click()
B = ActiveCell.Row
Do While ActiveCell.Value > Empty
A = ActiveCell.Row
ActiveCell.Offset(1, 0).Activate
Loop
C = (A - B) + 1
ActiveCell.Offset(-C, 0).Activate
For i = 1 To C
If ActiveCell.Value > Empty Then
ActiveCell.Value = i & ")" & " " & ActiveCell.Value
ActiveCell.Offset(1, 0).Activate
End If
Next i
End Sub


 


  

Comments

Popular posts from this blog

How to load a program each time AutoCAD starts up

Hello friends, Finally I have some free time to continue my blogging...so I am continuing my thread on Programming a Structural Section Drafting Program in VBA for AutoCAD. Remember the questions that I raised in previous thread about program....( Here )... I am going to demonstrate the (4) th question's solution which is pretty simple but very important for newbies.... How to load a program each time AutoCAD starts up and avoid loading the program each time you restart AutoCAD. 1. Go to Tools---AutoLISP----Load Application submenu or Tools---Load Application submenu Alternatively you can use the command line appload 2. You will see a file browse dialog box asking you to locate the application file...similar to image below: 3. Now observe, Red box number 1   Note: a. The type of files you can load into AutoCAD in red box number 1 in image above. Note: b. We use file with extension .dvb for loading a VBA program file which contains our code n ...

VBA to AutoCAD simple program

hello friends, was just wondering it would be gr8 to make a VB program which controls what is drawn in AutoCAD ...... hmmmm interesting.....So i went through developer help in AutoCAD and finally managed to have a basic level of AutoCAD customization and some VB coding which i like to do... So here is the pie.... 1. Tools used were: AutoCAD2010 and VBAIDE which now we need to download from Autodesk website: http://usa.autodesk.com/adsk/servlet/item?siteID=123112&id=12715668&linkID=9240618 which enables VBA in AutoCAD2010... Objectives: adding a tool menu in AutoCAD called ICS and put a button as sub menu called 'circle' which when selected will trigger the VB program and i could do some simple stuff in AutoCAD using that VB program... Firstly, how to add a menu in existing AutoCAD window.....i.e. things like File, Edit, View.......Help, Express.....and my own ICS ..... :) For this just give a simple command 'CUI' at the command prompt of the AutoCAD.... window...

Getting Thumbnail of images, Pdfs and DWG files

Its very much easy to get the thumbnail of the files supporting the thumbnail view like image files, Dwg files, pdf files........many programs need such kind of thumbnails. in VBA or VB6 projects you just need to add a simple control and set the filepath and thats it it is done!!!....i explain it below.... 5 easy steps to go so be patient.... :) 1. Go to Toolbox where general controls lie like textbox, label, button etc..... 2. right click over toolbox and go to Components........... 3. Select the following type library from controls.......if its not there in list go to browse and add it from system32 folder........add webvw.dll and u ll see this control in list....... if using VBA u might have this library alreay loaded and named " thmb ctrl "........ 4. u ll see a blank white control added to your toolbox..... 5. Just put that control on the form and in the code set thumbctl1.displayFile = "path of the file" 5. you could use common dialog to get th...