displaying international format phone numbers

S

stef

OL 2002 SP3
Win XP HE

Follow-up to: microsoft.public.outlook.contacts

Hi,
I have a folder with hundreds of contacts.
All telephone numbers display as +12129999999
I would like to have them all display as +1 (212) 999-9999
It does automatically change to that if I manually open the contact and
click on the little pencil icon to the right of the phone number field.
However, I can't really do this manually for hundred's of contacts.
How can I automate this?
Thanks a lot.
 
B

Brian Tillman

stef said:
I have a folder with hundreds of contacts.
All telephone numbers display as +12129999999
I would like to have them all display as +1 (212) 999-9999
It does automatically change to that if I manually open the contact
and click on the little pencil icon to the right of the phone number
field. However, I can't really do this manually for hundred's of
contacts. How can I automate this?

I don't know if it will help, but see this tool:
http://www.slovaktech.com/phonechanger.htm
 
E

Eric Legault [MVP - Outlook]

Try the Format function. In your case, it might look like this:

strX = Format(objC.BusinessTelephoneNumber, "+1 (@@@) @@@-@@@@")
objC.BusinessTelephoneNumber = strX
 
S

stef

Eric said:
Try the Format function. In your case, it might look like this:

strX = Format(objC.BusinessTelephoneNumber, "+1 (@@@) @@@-@@@@")
objC.BusinessTelephoneNumber = strX
Eric,
that's sounds good. thanks.
however, i only need to run this in ONE Contacts subfolder called ABC
(for example).
how do I run the code on that folder only?
 
E

Eric Legault [MVP - Outlook]

You can use the ActiveExplorer object to work with the selection in the
currently displayed folder and base your code on that:

If ActiveExplorer.Selection.count = 0 Then Exit Sub

For Each objC In ActiveExplorer.Selection
objC.BusinessTelephoneNumber = <your code here>
Next
 
S

stef

Eric said:
You can use the ActiveExplorer object to work with the selection in the
currently displayed folder and base your code on that:

If ActiveExplorer.Selection.count = 0 Then Exit Sub

For Each objC In ActiveExplorer.Selection
objC.BusinessTelephoneNumber = <your code here>
Next

Sorry Eric, I'm not experienced with VB.

is this how the whole macro would read?

"Sub ChangeTelFormat

strX = Format(objC.BusinessTelephoneNumber, "+1 (@@@) @@@-@@@@")

If ActiveExplorer.Selection.count = 0 Then Exit Sub

For Each objC In ActiveExplorer.Selection
objC.BusinessTelephoneNumber = strX

Next
End Sub"
 
E

Eric Legault [MVP - Outlook]

Yes, but you'd also of course need to declare the variables:

Dim objC As Outlook.ContactItem
Dim strX As String
 
S

stef

Eric said:
Yes, but you'd also of course need to declare the variables:

Dim objC As Outlook.ContactItem
Dim strX As String
Eric,
i must be doing something wrong as i'm getting an error message....
is there anyway i can get u to just spell it out for me out here, from
beginning to end?
that wd be most helpful.
 
E

Eric Legault [MVP - Outlook]

Try this, but make sure to set a breakpoint on the Save line and do not
proceed with saving until you've verified that this Format function is
changing the phone number as you'd expect. If ANY phone numbers don't meet
the expected +########### format, they get all messed up.

Sub ChangeTelFormat()
Dim objC As Outlook.ContactItem
Dim strX As String

If ActiveExplorer.Selection.Count = 0 Then Exit Sub
If ActiveExplorer.CurrentFolder.DefaultItemType <> olContactItem Then
Exit Sub

For Each objC In ActiveExplorer.Selection
strX = Format(objC.BusinessTelephoneNumber, "+1 (@@@) @@@-@@@@")
objC.BusinessTelephoneNumber = strX
objC.Save
Next

Set objC = Nothing
End Sub
 
S

stef

Eric said:
Try this, but make sure to set a breakpoint on the Save line and do not
proceed with saving until you've verified that this Format function is
changing the phone number as you'd expect. If ANY phone numbers don't meet
the expected +########### format, they get all messed up.

Sub ChangeTelFormat()
Dim objC As Outlook.ContactItem
Dim strX As String

If ActiveExplorer.Selection.Count = 0 Then Exit Sub
If ActiveExplorer.CurrentFolder.DefaultItemType <> olContactItem Then
Exit Sub

For Each objC In ActiveExplorer.Selection
strX = Format(objC.BusinessTelephoneNumber, "+1 (@@@) @@@-@@@@")
objC.BusinessTelephoneNumber = strX
objC.Save
Next

Set objC = Nothing
End Sub

I changed the strx format as "+@ (@@@) @@@-@@@@" as the +1 is already
part of the number I have: +18008888888

I added an "End If" at the end, and checked it w/debugger and ran it but
no changes at all in folder "test". nothing bad, nothing good. just
nothing....

i checked the telephone format and it's all good there but....

by the way, these contact numbers are in the Test folder from copying
them from another folder into which i imported the numbers from a phone
with XTDN. dt know if it makes a difference as far as OL reading them
properly or not.

Here is what i ran:

Sub ChangeTelFormat()
Dim objC As Outlook.ContactItem
Dim strX As String

If ActiveExplorer.Selection.Count = 0 Then Exit Sub
If ActiveExplorer.CurrentFolder.DefaultItemType < olContactItem Then
Exit Sub

For Each objC In ActiveExplorer.Selection
strX = Format(objC.BusinessTelephoneNumber, "+@ (@@@) @@@-@@@@")
objC.BusinessTelephoneNumber = strX
objC.Save
Next

Set objC = Nothing
End If

End Sub
 
E

Eric Legault [MVP - Outlook]

The best I can recommend at this point is to step through your code line by
line and verify the values of the variables and the properties of your
Contacts. You'll have to do some hard sleuthing and deducing to pinpoint the
problem.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top