Solved

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

Posted on 2014-07-30
3
323 Views
Last Modified: 2014-08-14
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...
0
Comment
Question by:ise438
3 Comments
 
LVL 14

Expert Comment

by:DrTribos
ID: 40230817
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
 

Author Comment

by:ise438
ID: 40231207
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
 
LVL 76

Accepted Solution

by:
GrahamSkan earned 500 total points
ID: 40231376
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

Featured Post

Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

Join & Write a Comment

I'm writing to share my clumsy experience in using this elegant tool so you can avoid every stupid mistake I made. (I leave it to the authorities to decide if this deserves a place in the Knowledge archives.)  Now that I am on the other side of my l…
Over the years I have built up my own little library of code snippets that I refer to when programming or writing a script.  Many of these have come from the web or adaptations from snippets I find on the Web.  Periodically I add to them when I come…
Learn how to create and modify your own paragraph styles in Microsoft Word. This can be helpful when wanting to make consistently referenced styles throughout a document or template.
Office 365 is currently available in five editions. Three of them are for business use: Office 365 Business Essentials, Office 365 Business, and Office 365 Business Premium. Two of them are for home/personal use: Office 365 Home and Office 365 Perso…

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now