Solved

Need help in formatting excel cells

Posted on 2014-11-13
8
261 Views
Last Modified: 2014-11-16
Hi Experts,
I have an Access file linked to an excel file for data comparison,
it compares rows from two sheets containing Social Securities, and displays in a report all names from sheetA that does not have matching records in SheetB and vice versa.
The problem I am encountering is that the data in excel file is not consistent, meaning the social is some time typed in with the dashes and some time it comes as numbers, and user changes it to display format as Social, however in Access it will only recognize the text rows while the numbers are shown as #Num!, what is the easiest solution?
0
Comment
Question by:bfuchs
8 Comments
 
LVL 15

Expert Comment

by:Haris Djulic
ID: 40441244
You can convert to text and replace dashes with somethign like this... If your social security number is in columns a then in columns B u can put this formula +SUBSTITUTE(TEXT(a1;);"-";"")
0
 
LVL 4

Author Comment

by:bfuchs
ID: 40441560
hi,
it gives me an error message,
besides how can I tell users to do that,
I really  need an automation function on my program to perform that,
thanks,
Ben
0
 
LVL 29

Expert Comment

by:gowflow
ID: 40444161
Could you pls post a sample Excel where you have the problem and will fix it for you ?
gowflow
0
The Eight Noble Truths of Backup and Recovery

How can IT departments tackle the challenges of a Big Data world? This white paper provides a roadmap to success and helps companies ensure that all their data is safe and secure, no matter if it resides on-premise with physical or virtual machines or in the cloud.

 
LVL 81

Expert Comment

by:byundt
ID: 40445259
Ben,
Here is a macro that will convert social security numbers into text so it can be imported into Access. Install the macro in a regular module sheet, then select your data and run the macro.

As written, the macro assumes your data is in a single column. Text representations of social security numbers (where the hyphens were already typed in) will be left unchanged.
Sub SSnumberToText()
Dim v As Variant
Dim rg As Range
Dim i As Long, n As Long
Set rg = Intersect(Selection, ActiveSheet.UsedRange)
v = rg.Value
n = rg.Rows.Count
For i = 1 To n
    If v(i, 1) <> "" Then v(i, 1) = Format(v(i, 1), "000-00-0000;;;@")
Next
rg.Value = v
End Sub

Open in new window


Cheers!

Brad
0
 
LVL 4

Author Comment

by:bfuchs
ID: 40446163
Hi Experts,

@gowflow,
attached is a sample of file.

@byundt,
Sorry for asking this, but I am not familiar with excel coding, is it possible to modify this so I can run it from Access, or perhaps you can give me exact steps how to install/run macros in Excel (2003)?
Also will the code work if there are additional columns besides the Social?

Thanks,
Ben
Book1.xls
0
 
LVL 81

Accepted Solution

by:
byundt earned 500 total points
ID: 40446200
I revised the code so it could be run from another application and would automatically convert social security numbers in column A of the first worksheet in a specified workbook. As written, Excel is launched, opens the file at a specified path, performs the conversion of column A to text, saves the file and closes the file.
Sub SSnumberToText()
Dim xlApp As Object
Dim wb As Object
Dim v As Variant
Dim rg As Object
Dim i As Long, n As Long
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = False
Set wb = xlApp.Workbooks.Open("X:\VBA\Sample '14\Book1Q28561591.xls")   'change path to suit
With wb.Worksheets(1)
    Set rg = .Range("A1")       'First cell with social security number
    Set rg = xlApp.Range(rg, .Cells(.Rows.Count, rg.Column).End(-4162))     '-4162 is the value of xlUp
End With
v = rg.Value
n = rg.Rows.Count
For i = 1 To n
    If v(i, 1) <> "" Then v(i, 1) = Format(v(i, 1), "000-00-0000;;;@")
Next
rg.Value = v
wb.Save
wb.Close SaveChanges:=False
Set wb = Nothing
Set xlApp = Nothing
End Sub

Open in new window

0
 
LVL 81

Expert Comment

by:byundt
ID: 40446210
The original macro cares only about the first column of cells you select before running the macro. It leaves all other columns unchanged. The revised macro assumes the data is in column A of the first worksheet in the workbook; it assumes the data starts in cell A1 and continues until the last cell with data in column A.

To install the original macro in Excel 2003:

1. ALT + F11 to open the VBA Editor
2. Insert...Module to create an empty module sheet
3. Paste the code there
4. ALT + F11 to return to the worksheet
5. Save the file as either .xls or .xlsm file format

To run a macro in Excel:
1. ALT + F8 to display the macro selector
2. Choose the desired macro, then click the Run button

To change macro security so you can run macros in Excel 2003:
1. Open the Tools...Options...Security menu item
2. Click the button for Macro Security
3. Choose the option for "Medium. You can choose whether or not to run potentially unsafe macros."

When you open the workbook, you should get a warning message about macros. Make sure that you respond by telling Excel to Enable macros in that workbook.
0
 
LVL 4

Author Closing Comment

by:bfuchs
ID: 40446242
Great Work,
Thank you!
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Phishing attempts can come in all forms, shapes and sizes. No matter how familiar you think you are with them, always remember to take extra precaution when opening an email with attachments or links.
Access custom database properties are useful for storing miscellaneous bits of information in a format that persists through database closing and reopening.  This article shows how to create and use them.
With the power of JIRA, there's an unlimited number of ways you can customize it, use it and benefit from it. With that in mind, there's bound to be things that I wasn't able to cover in this course. With this summary we'll look at some places to go…

679 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question