Need help in formatting excel cells

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?
LVL 4
bfuchsAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
byundtConnect With a Mentor Commented:
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
 
Haris DjulicCommented:
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
 
bfuchsAuthor Commented:
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
The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

 
gowflowCommented:
Could you pls post a sample Excel where you have the problem and will fix it for you ?
gowflow
0
 
byundtCommented:
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
 
bfuchsAuthor Commented:
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
 
byundtCommented:
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
 
bfuchsAuthor Commented:
Great Work,
Thank you!
0
All Courses

From novice to tech pro — start learning today.