**Project: Address Book in VBA**
I would like someone to create an address book (contacts) application. The contact information will be saved in an Excel workbook. The VBA application will allow a user to add, edit, delete, and sort contacts.
The VBA application should add, edit, and save the following contact information:
1) First, middle, and last name
2) Street address, city, state, zip code, and country
3) Birthday
4) Home, office, and cell phone
5) Fax
6) Email address
7) Title
You may want to include additional information: e.g. company, hobbies, degree program, notes, etc.
Users should not be allowed to add, edit, or delete contact information in the Excel worksheet. All adding, editing, and deleting should be done through the VBA application.
Use a variety of controls on your forms (e.g. list boxes, combo boxes, text boxes, option boxes, check boxes, etc).
One should be able to sort contacts by first name, last name, city, state, country, or birthday. Allow two sorting criteria. For example, the user can first sort by last name and then sort by state. Allow the user to either sort in ascending or descending order.
Include error handling code. Check to see that the user enters a first name, last name, street address, city, country, and phone.
Add comments to your code.
## Deliverables
Please do not make it very fancy. it has to be robust however.
So the program should anticipate situation like:
1. if for example a user enters a **telephone** that does not have the ### - ### - #### format the program should not accept the input.
**State** format should be a two letter word and should not be case sensitive and should store the state with capital letters (uppercase) even if the entry was with lowercase.
**Birthday** format should also be appropriate with MM-DD-YYYY and in addition it can be assisted with the calendar funtionality within VBA (see attached file)
Also an email address should at least have the <xxxxx@[login to view URL]> format, where the x's can be as long as needed (the string/character length)
2. if the user leaves a one of the required field blank, the program should prompt him to enter it and should not allow the user to continue.
It would be nice if you can add an extra level of control by requiring the user after he enters the required fields to confirm that the entries made were correct and give the user the opportunity to correct potential mistakes.
3. See the Summary for the requirements. The information above is to clarify formats of fields etc.
Most of this stuff is pretty standard anyway, I am just clarifying it.
Also see the two attachments as ideas, but there are other ways to do it also.
Good luck