I would like to format selected figures with a specific syntax so that
after running the macro parentheses are put around the numbers
Before:
xx-xxx-xx-xx (x stands for any number 0-9)
After (the result):
(xx-xxx-xx-xx)
Help is much appreciated. Thank you very much in advance.
Regards, Andreas
"andreashermle" wrote:
> .
>
Dear Mike,
Great job, Mike
ok, it works as desired. But I am afraid to tell you that I would like
the macro to work only on selected cells without my having to adjust
the VBA code each time.
Hope this is not asking too much.
Regards, Andreas
Manually, select your cells, Ctrl-1, Custom, Type: the above number-format
without the quotes
FWIW, numbers in brackets are typically regarded as -ve. Post back if that's
the objective as the -ve format should follow the +ve format, separated with
a comma.
Regards,
Peter T
"andreashermle" <andreas...@gmx.de> wrote in message
news:f677636b-0d71-4502...@c3g2000yqd.googlegroups.com...
(@)
The parentheses will only show up if there is an entry in the cell.
--
Rick (MVP - Excel)
"andreashermle" <andreas...@gmx.de> wrote in message
news:f677636b-0d71-4502...@c3g2000yqd.googlegroups.com...
Dear Peter T:
thank you very much for your professional help. It works as desired.
But I am afraid to tell you that I was looking for a VBA solution that
inserts the brackets in selected cells automatically.
Please find below a VBA solution which I came across in the meantime.
Thank you again for your valuable help. Regards, Andreas
Sub PutBracketsAroundFigures()
Dim ws As Worksheet
Dim cel As Range
Dim str As String
Const expr As String = "[(]?[0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9]-[0-9]
[0-9][)]?"
For Each cel In Selection
str = fnRegEx(cel.Text, expr)
If str <> "" Then
If Left(str, 1) <> "(" And Right(str, 1) <> ")" Then
cel = Replace(cel, str, "(" & str & ")")
End If
Next
End Sub
Function fnRegEx(str As String, expr As String) As String
Dim regex As Object
Set regex = CreateObject("vbscript.regexp")
regex.Pattern = expr
If regex.test(str) Then
fnRegEx = regex.Execute(str)(0)
Else
fnRegEx = ""
End If
Set regex = Nothing
End Function
Dear Rick
Sub PutBracketsAroundFigures()
Dim Cell As Range
For Each Cell In Selection
Cell.NumberFormat = "@"
Cell.Value = "(" & Cell.Value & ")"
Next
End Sub
If, on the other hand, you only want to put parentheses around those values
having the shape of the example number you posted (this is what your
solution code is doing), then try this macro instead...
Sub PutBracketsAroundFigures()
Dim Cell As Range
For Each Cell In Selection
If Cell.Value Like "??-???-??-??" Then
Cell.NumberFormat = "@"
Cell.Value = "(" & Cell.Value & ")"
End If
Next
End Sub
--
Rick (MVP - Excel)
"andreashermle" <andreas...@gmx.de> wrote in message
news:63557bd6-45cb-4b60...@v25g2000yqk.googlegroups.com...
Hi Rick,
Great help. It works just fine. It is much easier to understand. Have
a nice new year's eve and all the best for 2010.
I appreciate your terrific support.
Regards, Andreas