You can find the Excel tips you're looking at Pro-business Excel VBA Programming by entering the keyword in the textbox below and clicking the "Google Search" button.

Sunday, May 25, 2008

Excel Data Entry Form

Here is a simple way to make your Excel worksheet as a simple database. In our example, we will create a vendors table and we will use an Excel data entry form to allow user to populate the vendors table. Here's how to do it...

Step 1: Create a new workbook. Rename the first worksheet as "Vendor". It will become the repository of the vendor information that the users will enter to our data entry form.

Step 2: At the first row, enter the following "column" names...

  • Vendor ID
  • Vendor Name
  • Address 1
  • Address 2
  • City
  • Country
  • Zip
  • Phone 1
  • Phone 2
  • Fax
  • Contact
Here's how the worksheet should look when you enter them:


These "column" names are just example of what you can put in a vendor table. You can add your own columns or delete some that you think you don't need in your own application.

Step 3: Select all the cells of the column names.

Step 4: At the menu, click Data>Form as seen in the screen shot below:

You will be prompted with multiple questions; but your answer should be to make the first row of the highlighted cells as the columns (or labels). This question is only when the excel database has no records in it. The next time, when there are already records in it, this will not appear. The "Ok" button should be pressed at this point.

Step 5: The Excel data entry form is now in front of you. Here's how it looks...


Step 6: Like a usual data entry form, there are things that you can do with the form. To enter a new record, enter the information in each field and click the "New" button. "Delete" button is used to delete a record. "Restore" button is used to restore previous content of the fields when you amend the fields. "Find Prev", "Find Next" and "Criteria" are for records navigation. I have to say that most of the time the "Criteria" is not functioning well or maybe I was doing something wrong to make it act unusual.

So that's how to go through the Excel data entry form. This small database management is should be enough for small needs, but as the needs grow new methods are should be used instead of this. In the upcoming posts in the near future, I will discuss other ways to do that. not all in a single post, but in a subsequent series of posts.

You better subscribe now. See below how...



Click here to subscribe and receive Pro-business Excel VBA Programming tips.


If you like this post in Pro-business Excel VBA Programming, buy me a coffee.


Thursday, May 15, 2008

Checking Excel's Filename

This is an improvement of my previous post. It always happens to me that whenever I put a password protection in my Excel/VBA program, I need to hide to the regular users not just the confidential data or customized menu, but the password window also should not displayed so that they will not have the idea that the file has a confidential information or has features that they shouldn't see.

This is a simple trick that I've been using for years. Open the program that we did in the last post and change code in Open event in the ThisWorkbook object as indicated below:


'this is the original code

Private Sub Workbook_Open()
PasswordOk = False
frmPassword.Show
End Sub


'change it to this one

Private Sub Workbook_Open()
PasswordOk = False
If Left(ThisWorkbook.Name, 5) = "SYSAD" Then
frmPassword.Show
End If
End Sub



As you can see the program simply checks the filename of the Excel file if it is prefixed by the word "SYSAD". If it is, it will prompt for the password, otherwise, it loads just like an ordinary Excel file.

To ordinary users of the file you can just send to them a copy of the file without the prefix "SYSAD". To all users that needs to have access to the protected worksheet and customized menu, you can send to them the file with "SYSAD".



Click here to subscribe and receive Pro-business Excel VBA Programming tips.


If you like this post in Pro-business Excel VBA Programming, buy me a coffee.


Tuesday, May 13, 2008

Excel Password Protection - Part 4

There are situations that you need to hide a customized menu or to make worksheets read only from certain users that need your Excel file for informational purposes only and they shouldn't mess around with the important or confidential data in the worksheets.

This is the final post of the 4-part article about Excel Password Protection. We'll discuss here how to create a VBA program to make your worksheets and customized menu safe from unauthorized users. Just follow the steps below:

Step 1: From the previous post, open the file that we created. It should have the menu program that we entered in it. Open the VBE (you should know it by now or read the previous post, click here to learn about it).

Step 2: Create a new user form by clicking Insert>UserForm. The user looks like the screen shot below. It's the UserForm1. Beside it you'll see the Toolbox menu. It is used to put controls inside the form like a button, label and a text field.

Step 3: Open up the properties window by clicking View>Properties Window or by pushing F4 key. The properties window looks like the figure below:

Step 4: Click the new user form so that the properties window will show the form's properties. Inside that properties window, change the following form properties:


  • Name: change it to "frmPassword"
  • Caption: change it to "Enter Password"
  • Height: 111
  • Width: 210

Step 5: From the tool box window, drag and drop one label, textbox and a button to the user form. Once controls are put in the form, change the properties of each according to the values below:

Label
  • Name: lblPassword
  • Caption: Password
  • Width: 42
  • Height: 12
  • Top: 28
  • Left: 24
Textbox
  • Name: txtPassword
  • Width: 120
  • Height: 18
  • Top: 24
  • Left: 72
Button
  • Name: cmdOk
  • Caption: Ok
  • Width: 48
  • Height: 18
  • Top: 60
  • Left: 144


Step 6: Create a new module by clicking Insert>Module in the VBE menu. At the new module enter the following code: (copy-paste will do it quick)


'indicator that password is ok or not
'true = ok, false is not
Public PasswordOk As Boolean

'temporary storage of the
'password entered by the user
Public strPassword As String

Sub UnlockSystem(strPW As String)
PasswordOk = False 'initialize to false

'if password entered is incorrect
'it will generate an error and
'will not proceed in menu activation
On Error GoTo MyErr
Sheet1.Unprotect Password:=strPW
PasswordOk = True
strPassword = strPW
PutProBusinessMenu
On Error GoTo 0
Exit Sub
MyErr:
MsgBox "Worksheet 1 will remain locked and" & _
" customized menu is hidden.", , "Invalid Password"
End Sub

Sub LockSystem()
'this will be used to lock the program
'and disable the customized menu
'when changing workbook and closing the file
If PasswordOk Then
Sheet1.Protect Password:=strPassword
ClearProBusinessMenu
End If
End Sub



Step 7: Go back to the user form and double click the button control in it. The code view for the button is displayed. Enter the following code inside it:


'when the ok button is clicked,
'it runs the UnlockSystem routine
Private Sub cmdOk_Click()
UnlockSystem txtPassword.Text
Unload Me
End Sub



Step 8: Finally change the code of the entire ThisWorkbook object and put the following code:


Private Sub Workbook_Activate()
'if a workbook is activated,
'it will unlock the system if password
'previously entered was correct
If PasswordOk Then
UnlockSystem strPassword
End If
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
;lock again the system before closing
LockSystem
End Sub

Private Sub Workbook_Deactivate()
'locking the system when workbook is deactivated.
LockSystem
End Sub

Private Sub Workbook_Open()
'when the file is open, it prompts for the
'password
PasswordOk = False
frmPassword.Show
End Sub

Step 9: Lastly, lock the first sheet of your excel file (the one that has the object name of Sheet1) using any password that you want. The same password will be used to unlock it and enable the menu.

There you go. try to run the program by closing the file and reopen it. The file will ask for the password. If the correct password is entered, you will see the customized menu and the worksheet is unlocked. Otherwise, menu and worksheet is locked.



Click here to subscribe and receive Pro-business Excel VBA Programming tips.


If you like this post in Pro-business Excel VBA Programming, buy me a coffee.


Sunday, May 11, 2008

Create Customize Excel Menu

I have to apologize that I put off the supposedly next password article for this one. I must discuss this one first because the next password article will need this program module routines. I will be discussing here how to create a customize menu that we can insert in the existing Excel menu. The menu can be used in your program applications in many ways so it is something that you should know when developing Excel programs.

So let's get started to create our own customized menu.

Step 1: Open you Excel file and run the Visual Basic Editor (VBE) by clicking Tools>Macro>Visual Basic Editor.

Step 2: When VBE appears, add a new module by clicking Insert>Module at the VBE menu.

Step 3: At the new module, enter the following code snippets:



Sub PutProBusinessMenu()
Dim cmdControl As CommandBarControl
Dim cmdbarMenu As CommandBar
Dim cmdControlMenu As CommandBarControl
Dim intHelpMenuItem As Integer

ClearProBusinessMenu

Set cmdbarMenu = _
Application.CommandBars("Worksheet Menu Bar")

intHelpMenuItem = _
cmdbarMenu.Controls("Help").Index

Set cmdControlMenu = _
cmdbarMenu.Controls.Add(Type:=msoControlPopup, _
Before:=intHelpMenuItem)

cmdControlMenu.Caption = "&Pro-business"

With cmdControlMenu.Controls.Add( _
Type:=msoControlButton)
.Caption = "Execute Process"
.OnAction = "ExecuteProcess"
End With
End Sub

Sub ClearProBusinessMenu()
On Error Resume Next
Application.CommandBars("Worksheet Menu Bar"). _
Controls("&Pro-business").Delete
On Error GoTo 0
End Sub

Sub ExecuteProcess()
MsgBox "Process is executed."
End Sub



The first snippet is about creating the menu before the Help option. The second one is deleting it from the menu. You need the second snippet to clear your own menu when the file is closed or when the user move from your workbook to another workbook that doesn't use your program. The next step is about doing that.

The last snippet is the module to be executed when the option in our new menu is executed. This part is where you put your own code when you want to use this program in your own application.

Step 4: Click ThisWorkbook item in the Project window at the left side of your VBE. When the ThisWorkbook module opens up and enter the following code snippets.



Private Sub Workbook_Activate()
PutProBusinessMenu
End Sub

Private Sub Workbook_Deactivate()
ClearProBusinessMenu
End Sub



Step 5: Save your Excel file, close it and try to open it again. You will see that you have the new menu right before the Help in the main menu. Open up another Excel file and try to switch between our Excel file and the other one. You will see that the menu appears only when our Excel file is active.

That's how to do it. Next time, as promised, the Excel password protection for your Excel and VBA program. We will put a password protection to this customized menu and we will discuss so much more about Excel program security.

Subscribe now to see the next topic by clicking the link below:



Click here to subscribe and receive Pro-business Excel VBA Programming tips.


If you like this post in Pro-business Excel VBA Programming, buy me a coffee.


Friday, May 9, 2008

Excel Password Protection - Part 3

In our 2 previous posts, Excel Password Protection Part 1 & Part 2, we tackled 2 ways to protect your Excel spreadsheets. The first part was about protecting the Excel file itself. The second was about security at the worksheet level.

We are now in the third part of Excel Password Protection series. It's time discuss how to give security to your valued source code. Here are the steps:

1.) Open your Excel file with the VBA program. Load the VBE from the menu by clicking Tools>Macro>Visual Basic Editor.

2.) At the VBE menu, click Tools>VBAProject Properties and the Protection tab. Its window look like the screen shot below:

3.) Tick the checkbox to lock the project's code for viewing and at the last part of the window, you need to enter your password in both the "Password" and "Confirm Password" text fields. This is to make sure that you didn't put in a misspelled one.

4.) Click OK button

So that's it. Isn't it simple. The next time you open your Excel file and its VBE, you will not see your program unless you enter the right password.

In this Part 1-3 of Excel Password Protection series, we haven't done any programming yet, but in the next post, you will learn how to make your own VBA program to protect some portion of your Excel file from unauthorized access, execution or modification. You haven't seen the best part yet. So you better come back here. Subcribe now for free by clicking here.

After this password series, I will start to discuss (mostly) about business processes and Excel and VBA can be a good part of them. Right now, I've been thinking what to tackle first. I want you, my readers, to help me out on what particular interest most of my readers are into. I want to give what you want, so please help me by voting at the "Poll" section at the right side of this page. The one that has the highest vote will be touched here first.

Start voting! :)



Click here to subscribe and receive Pro-business Excel VBA Programming tips.


If you like this post in Pro-business Excel VBA Programming, buy me a coffee.


Thursday, May 8, 2008

Excel Password Protection - Part 2

In this second post about Excel Password Protection, we will discuss how to protect individual worksheet of an Excel workbook. There are many reasons why sometimes we need to password protect them but most of them are for keeping the content of the worksheet intact and unmodified, or keeping the confidentiality of the content, e.g. formula for profit margin, item cost, etc. from those who shouldn't be looking at them. Without so much bother, here are the ways to password protect your worksheets.


Making A Worksheet Read-Only

To protect your worksheet from alteration and to hide all the formula in all the cells by locking them by a password, all you have to do is choose the tab name of the worksheet. Highlight the whole worksheet by clicking the upper left cell header. Then on the menu click Format>Cells. The Format Cells window will appear. Click the Protection tab. It looks like the screen grab below:


There are two checkboxes, the Locked and Hidden checkboxes. The Locked is checked by default but the other one is not. The Locked is to make all the cells unmodifiable when you activate the worksheet password protection. The Hidden checkbox is to hide all the formulas of the cells. Check them both.

The next step is to activate the sheet protection. Go to Tools>Protection>Protect Sheet. You will see the Protect Sheet window as seen below:


The first checkbox you see should be checked to make the security active. The textbox below it is for the password. It is actually optional but what's the use of locked sheet without a password. Anyone can undo the protection when there's no password. So, you should put your password for total guarantee that it's safe.

Below the textbox, you can see a set of checkboxes. Most of the time, I didn't change the default value of them but there's no harm in exploring it. You can experiment on different combinations that you think appropriate to your needs.

When done, push the Ok button to complete the operation. Your worksheet is now read-only protected.


Making Other Cells Unlocked And Changeable

At the above procedure, you locked all the cells and made them unchangeable. But if you need to leave other cells in the worksheet unlock and available for user to alter them, it is also possible to do that. After locking all the cells, you can choose the cells that you want to be kept changeable and highlight them. Click again the Format>Cells at the menu. Choose the Protection tab. Uncheck the Locked checkbox and click Ok button. Activate the sheet protection.

Maybe you are asking, "Why do I have to do that; leaving other cells changeable?". At this level of discussion, it doesn't look like it make sense. Doesn't it? Allow me to give you an example. Let's say, you are making a data entry for a Purchasing Order form. You create a template of the form in Excel and you want the user or the buyer to use that Excel file to create the PO form for the company purchases. At this scenario, you can lock the sheet for the PO entry form to protect the layout from accidental changes and leaving only those fields for the entry of PO number, vendor, payment terms, delivery date, etc. open for user encoding. Do you get the idea?

There are so many things that you can do with the functions. The example I gave above is just one of them and it's a very simple one. Different applications with this is only a matter of how you use your imagination and creativity. I'm sure, you can think of something that you can do with it in you job or business.

Next post will be about Visual Basic protection. So keep the subscription and stay in the loop. To those who want to subscribe, it's for free. Just click here.



Click here to subscribe and receive Pro-business Excel VBA Programming tips.


If you like this post in Pro-business Excel VBA Programming, buy me a coffee.


Tuesday, May 6, 2008

Excel Password Protection- Part 1

One of my readers, his name is Stew, requested me to discuss about Excel password protection because I mentioned it in my last post entitled Advantages And Disadvantages Of Microsoft Excel Database Application. As I said in that post, there are many ways to protect your Excel file. I can not tackle everything in one post, so consider this as the first part of series of articles about Excel password protection. I put off for a while my topic on how to develop Excel database application to give way to this one.

Password Protect Your Excel File From Unauthorized Use

This one is very simple to do. Open an Excel file. If you just created an unsaved new one, save it first before you can set a password into it. Then follow the steps below:

  • Click File>Save As in the menu.
  • On the Save As window, click the Tools at the upper right portion of it as shown in the screen shot below:
  • The Save Options window will appear as shown in the figure below. The window prompts for 2 passwords. The password to open the file and another one to allow the user to modify the file. The second one is optional. If it is left blank, Excel assumes that the first password is for both opening and modification. If the second password is provided, it will ask for a second password when you open the file. If the second file is not entered on opening, the file is in read-only mode.
  • There are two checkboxes, the "Always create backup" checkbox makes your Excel file to create a backup whenever you modified the file. The next one is "Read-only recommended" checkbox that prompts you if you want to open it as a read-only or not.
  • The best part of this Excel password protection is that you can tighten your security even more by having a strong encryption method for your password. You can do that by clicking the "Advanced" button. You will see Encryption Type window and choose the encryption type that you want. It looks like this:
  • Click the Save button.
Next time we will discuss about password protecting your worksheets and cells ranges.



Click here to subscribe and receive Pro-business Excel VBA Programming tips.


If you like this post in Pro-business Excel VBA Programming, buy me a coffee.


Sunday, May 4, 2008

Advantages And Disadvantages Of Microsoft Excel Database Application

Yes, it is possible to make Excel as a database and be able to be a database application just like Access. I am sure that you won't believe me when I say that anything that you can do with a regular programming language is also possible with Microsoft Excel.

But of course, there are advantages and disadvantages in using Microsoft Excel as database. What are the advantages?

  • First and foremost, if you have the Microsoft Office in your PC, you don't need anything else to be installed in your computer. You are good to go and can start with your programming straight away.
  • Second, if you are a beginner, you can easily learn the Excel VBA Programming because you are half familiar with the programming platform that you are going to use, which is Excel.
  • Third, you can start with small Excel database application and as the need grows especially on records that are getting huge, you can still use the same Excel application and upgrade your database platform from Excel to other high-end databases like Access, SQL Server, Oracle, MySQL, etc.
  • Fourth, Excel is capable of connecting directly to OLAP databases and can be integrated in Pivot Tables.
  • Fifth, You don't need to create a your own financial modules. Excel is rich in financial functions like Fixed Assets Depreciation, Amortization, etc.
  • Sixth, Excel is portable. You can send it to someone through email.
Excel database application also has its disadvantages. But these disadvantages are sometimes have some workaround that can be done to fix or sometimes there are little effect that you can just live with them. Here are the disadvantages:
  • When you develop your application into one file it can be huge and will make your program execution very slow. But as I told you, there are workarounds. Design your program to have compact codes to lessen the bloating of the file. Another way is to separate each application function into more than one files. For example, if you are going to design a purchasing program, you can separate each of them; the purchase requisition function, item-and-price comparison matrix function, vendor master list maintenance, item master list maintenance, purchase order function, etc. Each will have small file, therefore execution is faster.
  • When you separate functions to multiple files, Excel files are prone to get lost in your hard drive especially when you break your application to too many files. You should practice a good folders/sub-directories management.
  • Excel worksheet as a database has a limited number of rows or records that you can store. But when you reach the 65k lines limit, you can convert it easily to Access and the rest of the application is can still be used.
  • If you can send Excel via email, you can accidentally send your file to someone who should not have it or not authorized to have it. Solution? You can password protect your Excel file. You can do it in two ways. First, Excel is capable of password protection in many ways (I will also discuss that in the future). Second, you can create your own password protection by Macro/VBA programming.
So far there are only 4 disadvantages that I can think of. Of course, some of you has something to say about an Excel as a database application, either positive or negative. But one thing is for sure, if it is a negative one, there is always a solution and you can always do something to fix it.

In subsequent posts, I will give some examples on how to create Excel database application. Everything can not be touched in one writing so it can be a series of posts that you should follow. To be informed of subsequent posts, subscribe to this blog. It's for free and can be done in a few seconds. Just click any of the subscription method on the upper right part of this webpage or just click here.



Click here to subscribe and receive Pro-business Excel VBA Programming tips.


If you like this post in Pro-business Excel VBA Programming, buy me a coffee.