Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Word / Tables / April 2008

Tip: Looking for answers? Try searching our database.

Formula to calculate sum based on drop down form fields in Word

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
KLane - 04 Dec 2007 19:26 GMT
I am using Word 2003 and am creating a performance review form.  I have 13
drop down fields on all of which the choices can only be 1, 2, 3, 4 or 5.  On
the final blank I would like to write a formula which calculates the total of
all the rankings listed.  

I have tried EVERYTHING!  =SUM(above), =SUM(b2:b14),
=SUM(dropdown1:dropdown13).  The colon returns a syntax error.  I have listed
them all out with comma separators with no colon and that returns a 0.  And,
of course, I have done with and without Ctrl-F9 brackets.  I am now begging
for any help you can give.  Thank you.
Greg Maxey - 04 Dec 2007 20:32 GMT
You might be able to do it with a formula field, but I don't know how.  I
would use a macro set to run on exit from each variable dropdown field.
Something like this:

Sub TallyResults()

Dim FF As FormField, DDFresult As Long
DDFresult = 0
For Each FF In ActiveDocument.FormFields
If FF.Type = wdFieldFormDropDown Then
   If FF.Result = "Superior" Then
       DDFresult = DDFresult + 5
   ElseIf FF.Result = "Above Average" Then
       DDFresult = DDFresult + 4
   ElseIf FF.Result = "Average" Then
       DDFresult = DDFresult + 3
   ElseIf FF.Result = "Below Average" Then
       DDFresult = DDFresult + 2
  Else
       DDFresult = DDFresult + 1
  End If
End If
Next FF
ActiveDocument.FormFields("Result").Result = DDFresult

End Sub

Signature

Greg Maxey/Word MVP
See:
http://gregmaxey.mvps.org/word_tips.htm
For some helpful tips using Word.

>I am using Word 2003 and am creating a performance review form.  I have 13
> drop down fields on all of which the choices can only be 1, 2, 3, 4 or 5.
[quoted text clipped - 11 lines]
> begging
> for any help you can give.  Thank you.
Doug Robbins - Word MVP - 04 Dec 2007 21:49 GMT
Greg,

This is a bit simpler

Dim FF as FormField
Dim Score as Long
Score = 0
With ActiveDocument
   For each FF in .FormFields
       If FF.Type = wdFieldFormDropDown then Score = Score +
FF.DropDown.Value
   Next FF
   .Formfields("Result").Result=Score
End With

Signature

Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP

> You might be able to do it with a formula field, but I don't know how.  I
> would use a macro set to run on exit from each variable dropdown field.
[quoted text clipped - 38 lines]
>> begging
>> for any help you can give.  Thank you.
Greg Maxey - 04 Dec 2007 22:17 GMT
Doug,

I agree.  I only posted an example that I had lying about that had dropdown
values of "Superior," "Excellent," "Good," etc.

Signature

Greg Maxey/Word MVP
See:
http://gregmaxey.mvps.org/word_tips.htm
For some helpful tips using Word.

> Greg,
>
[quoted text clipped - 59 lines]
>>> begging
>>> for any help you can give.  Thank you.
macropod - 04 Dec 2007 21:53 GMT
Hi KLane,

A formula field coded as:
{={REF DropDown1}+{REF DropDown2}+{REF DropDown3}+{REF DropDown4}+{REF DropDown5}}
will sum the values from your 5 Dropdown fields.

Note: use Ctrl-F9 to create the field braces (ie '{}').

Cheers
Signature

macropod
[MVP - Microsoft Word]
-------------------------

>I am using Word 2003 and am creating a performance review form.  I have 13
> drop down fields on all of which the choices can only be 1, 2, 3, 4 or 5.  On
[quoted text clipped - 6 lines]
> of course, I have done with and without Ctrl-F9 brackets.  I am now begging
> for any help you can give.  Thank you.
KLane - 14 Dec 2007 15:31 GMT
That worked perfectly!  Thank you very much.

> Hi KLane,
>
[quoted text clipped - 15 lines]
> > of course, I have done with and without Ctrl-F9 brackets.  I am now begging
> > for any help you can give.  Thank you.
pedro gracio - 16 Apr 2008 13:51 GMT
Hi,

This seems to work pretty well in word 2000 until it is used in a large document that has a table of contents. It seems to need some sort of refresh.

I also tried this macro and although it also seems to work, it results in making the pages scroll up & down. This of course would be quite painful for the user.

Here's that code :

Sub AddDropDownResults()

     Dim dDown1, dDown2, dDown3, dDown4, dDown5, dDown6, dDown7, As Integer
     ' Get value of first drop down form field.
     dDown1 = Val(ActiveDocument.FormFields("DropDown1").Result)
     ' Get value of second drop down form field.
     dDown2 = Val(ActiveDocument.FormFields("DropDown2").Result)
     ' Get value of thrid drop down form field.
     dDown3 = Val(ActiveDocument.FormFields("DropDown3").Result)
     ' Get value of fouth drop down form field.
     dDown4 = Val(ActiveDocument.FormFields("DropDown4").Result)
     ' Get value of fifth drop down form field.
     dDown5 = Val(ActiveDocument.FormFields("DropDown5").Result)
     ' Get value of sixth drop down form field.
     dDown6 = Val(ActiveDocument.FormFields("DropDown6").Result)
     ' Get value of seveth drop down form field.
     dDown7 = Val(ActiveDocument.FormFields("DropDown7").Result)
     ' Calculate results and place in Text1 form field
     ActiveDocument.FormFields("Text1").Result = Str(dDown1 + dDown2 + dDown3 + dDown4 + dDown5 + dDown6 + dDown7)

End Sub

Any help would be greatly appreciated

Thanks

Pedy
macropod - 16 Apr 2008 15:16 GMT
Hi pedro,

You don't need a macro to do the calculation. All you need is a formula field (not a formfield), coded as:
{=DropDown1+DropDown2+DropDown3+DropDown4+DropDown5+DropDown6+DropDown7}
where the field braces (ie '{ }') are created via Ctrl-F9.

As for the TOC, the best way to update it in a form is to use a macro to temporarily unprotect the form, update the TOC, then
reprotect the form (with noreset = true).

Cheers
Signature

macropod
[MVP - Microsoft Word]
-------------------------

> Hi,
>
[quoted text clipped - 33 lines]
>
> Pedy
macropod - 18 Apr 2008 04:18 GMT
Hi pedro,

Formula Correction:
{={DropDown1}+{DropDown2}+{DropDown3}+{DropDown4}+{DropDown5}+{DropDown6}+{DropDown7}}

Cheers
Signature

macropod
[MVP - Microsoft Word]
-------------------------

> Hi pedro,
>
[quoted text clipped - 43 lines]
>>
>> Pedy
pedygbinuss@gmail.com - 18 Apr 2008 13:16 GMT
> Hi pedro,
>
[quoted text clipped - 61 lines]
>
> - Show quoted text -

Hi macropod,

Sorry for re-posting, I did not see your reply...

How would I create a "macro to temporarily unprotect the form" ?

The other thing that I tried and it worked great until I placed the
table in a document with a TOC is just using a regular Text Form Field
type Number with the calculate on exit, and in the last cell I used
the formula "=SUM(d2:d21)". This again woked just fine, it calculated
automatically & all but once there is a TOC it didn't do anything...

pedy
macropod - 18 Apr 2008 14:10 GMT
Hi pedro,

You could use an 'on exit' macro like the following attached to a formfield:
Sub UpdateDoc()
Dim ToC As TableOfContents
Dim pRange As Word.Range
Dim Pwd As String
Dim pState As Boolean
With ActiveDocument
 pState = False
 If .ProtectionType <> wdNoProtection Then
   Pwd = InputBox("PleasePassword", "Password")
   pState = True
   .Unprotect Pwd
 End If
 ' Loop through Story Ranges and update.
 ' Note that this may trigger interactive fields (eg ASK and FILLIN).
 For Each pRange In .StoryRanges
   Do
     pRange.Fields.Update
     Set pRange = pRange.NextStoryRange
   Loop Until pRange Is Nothing
 Next
 ' Loop through Tables Of Contents and update
 For Each ToC In .TablesOfContents
   ToC.Update
 Next
 If pState = True Then .Protect wdAllowOnlyFormFields, Noreset:=True, Password:=Pwd
 pState = False
 Pwd = ""
End With
End Sub

The code asks the use to input the password. If you don't want to do that, replace:
Pwd = InputBox("PleasePassword", "Password")
with:
Pwd = "Password"
where "Password" is the actual password.

Note that the macro includes code to update the ToC also, since it's difficult to get ToCs to update correctly in a form. The same
applies to Tables of Authorities and Tables of Figures, but you haven't mentioned the document having any of them. You can delete
the code to update the ToC if none of your formfields can change the document's pagination.

Cheers
Signature

macropod
[MVP - Microsoft Word]
-------------------------

On Apr 17, 11:18 pm, "macropod" <inva...@invalid.invalid> wrote:
> Hi pedro,
>
[quoted text clipped - 64 lines]
>
> - Show quoted text -

Hi macropod,

Sorry for re-posting, I did not see your reply...

How would I create a "macro to temporarily unprotect the form" ?

The other thing that I tried and it worked great until I placed the
table in a document with a TOC is just using a regular Text Form Field
type Number with the calculate on exit, and in the last cell I used
the formula "=SUM(d2:d21)". This again woked just fine, it calculated
automatically & all but once there is a TOC it didn't do anything...

pedy
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.