Word 2010 Table convert 10 to 10.00 via VBA Macro is this possible? 500 pnts

Ok so I have a word table when a user enter 10 I want the to be able to run a macro and have the figure automatically convert to 10 to 10.00 via VBA Macro.

So user enter 10 and the run macro and it converts to 10.00

Easy to get them to just type it but I have my reason for doing this

500pnts - Easy for someone out there I reckon..

Thanks

Ian...
Ian PriceIT ManagerAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

DrTribosCommented:
Easy, but there are a few ways this could be done and picking a way that will help you is difficult because it is not clear what the underlying intention of the question is.  

For example, if the user has the discipline to run the macro, they why not just enter 10.00 instead of 10.  Or is it the case that you have a document full of 10's that you wish to replace with 10.00's

Will the 10 be the only thing in the cell?

A basic approach is shown in the attached, you will need to rename .zip to .docm

Option Explicit

Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
If ContentControl.Tag = "Ten" Then
    If ContentControl.Range.Text = "10" Then ContentControl.Range.Text = "10.00"
End If
End Sub	

Open in new window

10.zip
0
Ian PriceIT ManagerAuthor Commented:
Ok fair point...

Bit of background - I am tweaking and invoice for the company I work, we need to use word instead of excel because only word integrate with our internal system.

The table uses a macro to update the calculation field so they need to run a macro any way.

But there is another macro that control is VAT is applied at that point I want VBA to check the contents of a cell and if it 10 or 15 or 20 change it to 10.00, 15.00 or 20.00. So format the cell so to speak it easy in Excel but not in word.

I know I can reference a cell in a table by using the active table command and the column and row etc

Does that help?
0
GrahamSkanRetiredCommented:
I guess that Steve is in bed.

 You can format cells without VBA using fields, e.g. { SUM(ABOVE) \# "#,##0.00" }

With VBA, you don't have to select the table to read and/or write data to one of its cells. You can find it in several ways ways, including its Index number. Every table has one - it's the order in the document. Our you can use bookmarks, look for some unique data etc. However, this sample code would work on the first table in the selection.

Option Explicit

Sub FormatCellData()
Dim strText As String
    strText = GetCellText(Selection.Tables(1).Cell(1, 1))
    Select Case strText
        Case "10", "15", "20"
            Selection.Tables(1).Cell(1, 1).Range.Text = strText & ".00"
    End Select
End Sub

Function GetCellText(cl As Cell) As String
    Dim rng As Range
    Set rng = cl.Range
    rng.MoveEnd wdCharacter, -1 'drop cell delimiter
    GetCellText = rng.Text
End Function

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
VB Script

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.