View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.misc
Ron Rosenfeld Ron Rosenfeld is offline
external usenet poster
 
Posts: 5,651
Default VBA inserting a space in a text

On Thu, 9 Nov 2006 08:39:02 -0800, Mouimet
wrote:

Hi,
I need to create a macro to convert a canadian postal code.
The user received different files with the postal code in a wrong format.
The data are not always in the same column.
I just want the user to select the column or the range then click the macro
to convert it in the right format.
Format they received: h2r4d5
After they click the macro I need to see H2R 4D5 (space after the third
digit)
Normaly I do this using another column with the formula =left(a1,3)&"
"&right(a1,3)
Then copie the value to replace the data.
It will be faster if we can do this in VBA and the userid doesn't need to
know how to type the formula.
Thank You


Perhaps something like:

==================================
Option Explicit
Sub FormatPostCode()
Dim c As Range
Dim i As Long
Dim sCode As String

For Each c In Selection
sCode = Replace(c.Text, " ", "")
sCode = UCase(sCode)

'check for valid post code
If Len(sCode) < 6 Then Exit Sub
'or display some error message

sCode = Left(sCode, 3) & " " & Right(sCode, 3)
c.Value = sCode
Next c
End Sub
==========================
--ron