Sorry, waaaaay to complex for me.
You have your first section unprotected, your second section protected.
The problem you are experiencing is that in a document based on your
template your on exit macro doesn't fire. How are you exiting the formfield?
For debugging purposes, try substituting some simple message boxes for your
detailed code. I am trying to find out what you expect to fire, and what
happens instead.
--
Charles Kenyon
Word New User FAQ & Web Directory:
http://addbalance.com/word
Intermediate User's Guide to Microsoft Word (supplemented version of
Microsoft's Legal Users' Guide)
http://addbalance.com/usersguide
--------- --------- --------- --------- --------- ---------
This message is posted to a newsgroup. Please post replies
and questions to the newsgroup so that others can learn
from my ignorance and your wisdom.
Hi Charles,
Yes it is. Here's what I do via Code:
'************* Code in ThisDocument **************
Private Sub Document_New()
'* protect document
ActiveDocument.Sections(1).ProtectedForForms = False
ActiveDocument.Sections(2).ProtectedForForms = True
ActiveDocument.Sections(3).ProtectedForForms = False
ActiveDocument.Protect Password:="", NoReset:=False,
Type:=wdAllowOnlyFormFields
'* set cursor
Selection.GoTo What:=wdGoToBookmark, Name:="txtAnzWegleitung"
End Sub
'******************** Code in Module
Public strField As String
Sub pCalculateTotals()
Dim varTotal As Variant
On Error Resume Next
Select Case strField
Case "txtAnzWegleitung"
ActiveDocument.FormFields.Item("txtCHFWegleitung").Result =
IIf(ActiveDocument.FormFields("txtAnzWegleitung").Result = "", 0,
ActiveDocument.FormFields("txtAnzWegleitung").Result)
Selection.GoTo What:=wdGoToBookmark, Name:="txtAnzErgänzung"
Case "txtAnzErgänzung"
ActiveDocument.FormFields.Item("txtCHFErgänzung").Result =
IIf(ActiveDocument.FormFields("txtAnzErgänzung").Result = "", 0,
ActiveDocument.FormFields("txtAnzErgänzung").Result)
Selection.GoTo What:=wdGoToBookmark, Name:="txtAnzLohnausw"
Case "txtAnzLohnausw"
ActiveDocument.FormFields.Item("txtCHFLohn").Result = 0
Selection.GoTo What:=wdGoToBookmark, Name:="txtAnzWertschr"
Case "txtAnzWertschr"
ActiveDocument.FormFields.Item("txtCHFWertschriften").Result =
IIf(ActiveDocument.FormFields("txtAnzWertschr").Result & "" = "", 0,
ActiveDocument.FormFields("txtAnzWertschr").Result * 0.25)
Selection.GoTo What:=wdGoToBookmark, Name:="txtAnzSchuldenver"
Case "txtAnzSchuldenver"
ActiveDocument.FormFields.Item("txtCHFSchuldenverz").Result =
IIf(ActiveDocument.FormFields("txtAnzSchuldenver").Result & "" = "", 0,
ActiveDocument.FormFields("txtAnzSchuldenver").Result * 0.25)
Selection.GoTo What:=wdGoToBookmark, Name:="txtAnzDA"
Case "txtAnzDA"
ActiveDocument.FormFields.Item("txtCHFDA").Result =
IIf(ActiveDocument.FormFields("txtAnzDA").Result & "" = "", 0,
ActiveDocument.FormFields("txtAnzDA").Result * 0.25)
Selection.GoTo What:=wdGoToBookmark, Name:="txtAntrag"
Case "txtAntrag"
ActiveDocument.FormFields.Item("txtCHFAntrag").Result =
IIf(ActiveDocument.FormFields("txtAntrag").Result & "" = "", 0,
ActiveDocument.FormFields("txtAntrag").Result * 0.25)
Selection.GoTo What:=wdGoToBookmark, Name:="txtAnzFragebogen"
Case "txtAnzFragebogen"
ActiveDocument.FormFields.Item("txtCHFFragebogen").Result =
IIf(ActiveDocument.FormFields("txtAnzFragebogen").Result & "" = "", 0,
ActiveDocument.FormFields("txtAnzFragebogen").Result * 0.25)
Selection.GoTo What:=wdGoToBookmark, Name:="txtAnzSteuergesetz"
Case "txtAnzSteuergesetz"
ActiveDocument.FormFields.Item("txtCHFSteuergesetz").Result =
IIf(ActiveDocument.FormFields("txtAnzSteuergesetz").Result & "" = "",
0, ActiveDocument.FormFields("txtAnzSteuergesetz").Result * 25)
Selection.GoTo What:=wdGoToBookmark, Name:="txtAnzSteuertarif"
Case "txtAnzSteuertarif"
ActiveDocument.FormFields.Item("txtCHFSteuertarif").Result =
IIf(ActiveDocument.FormFields("txtAnzSteuertarif").Result & "" = "", 0,
ActiveDocument.FormFields("txtAnzSteuertarif").Result * 10)
Selection.GoTo What:=wdGoToBookmark, Name:="txtKursliste"
Case "txtKursliste"
ActiveDocument.FormFields.Item("txtCHFKursliste").Result =
IIf(ActiveDocument.FormFields("txtKursliste").Result & "" = "", 0,
ActiveDocument.FormFields("txtKursliste").Result * 14)
Selection.GoTo What:=wdGoToBookmark, Name:="txtKurslisteHB"
Case "txtKurslisteHB"
ActiveDocument.FormFields.Item("txtCHFKurslisteHB").Result =
IIf(ActiveDocument.FormFields("txtKurslisteHB").Result & "" = "", 0,
ActiveDocument.FormFields("txtKurslisteHB").Result * 14)
Selection.GoTo What:=wdGoToBookmark, Name:="txtAnzTelefonverz"
Case "txtAnzTelefonverz"
ActiveDocument.FormFields.Item("txtCHFTelefonverz").Result =
IIf(ActiveDocument.FormFields("txtAnzTelefonverz").Result & "" = "", 0,
ActiveDocument.FormFields("txtAnzTelefonverz").Result * 6)
Selection.GoTo What:=wdGoToBookmark, Name:="txtSonstiges"
Case "txtCHFSonstiges"
Selection.GoTo What:=wdGoToBookmark, Name:="txtAufragErledigt"
End Select
ActiveDocument.FormFields.Item("txtCHFTotal").Result = 0
ActiveDocument.FormFields.Item("txtCHFTotal").Result = _
CDec(IIf(ActiveDocument.FormFields.Item("txtCHFWegleitung").Result
= "", 0, ActiveDocument.FormFields.Item("txtCHFWegleitung").Result)) +
_
CDec(IIf(ActiveDocument.FormFields.Item("txtCHFErgänzung").Result
= "", 0, ActiveDocument.FormFields.Item("txtCHFErgänzung").Result)) +
_
CDec(IIf(ActiveDocument.FormFields.Item("txtCHFLohn").Result = "",
0, ActiveDocument.FormFields.Item("txtCHFLohn").Result)) + _
CDec(IIf(ActiveDocument.FormFields.Item("txtCHFWertschriften").Result =
"", 0, ActiveDocument.FormFields.Item("txtCHFWertschriften").Result)) +
_
CDec(IIf(ActiveDocument.FormFields.Item("txtCHFSchuldenverz").Result =
"", 0, ActiveDocument.FormFields.Item("txtCHFSchuldenverz").Result)) +
_
CDec(IIf(ActiveDocument.FormFields.Item("txtCHFDA").Result = "", 0,
ActiveDocument.FormFields.Item("txtCHFDA").Result)) + _
CDec(IIf(ActiveDocument.FormFields.Item("txtCHFAntrag").Result =
"", 0, ActiveDocument.FormFields.Item("txtCHFAntrag").Result)) + _
CDec(IIf(ActiveDocument.FormFields.Item("txtCHFFragebogen").Result
= "", 0, ActiveDocument.FormFields.Item("txtCHFFragebogen").Result)) +
_
CDec(IIf(ActiveDocument.FormFields.Item("txtCHFSteuergesetz").Result =
"", 0, ActiveDocument.FormFields.Item("txtCHFSteuergesetz").Result)) +
_
CDec(IIf(ActiveDocument.FormFields.Item("txtCHFSteuertarif").Result
= "", 0, ActiveDocument.FormFields.Item("txtCHFSteuertarif").Result)) +
_
CDec(IIf(ActiveDocument.FormFields.Item("txtCHFKursliste").Result =
"", 0, ActiveDocument.FormFields.Item("txtCHFKursliste").Result)) + _
CDec(IIf(ActiveDocument.FormFields.Item("txtCHFKurslisteHB").Result
= "", 0, ActiveDocument.FormFields.Item("txtCHFKurslisteHB").Result)) +
_
CDec(IIf(ActiveDocument.FormFields.Item("txtCHFTelefonverz").Result
= "", 0, ActiveDocument.FormFields.Item("txtCHFTelefonverz").Result)) +
_
CDec(IIf(ActiveDocument.FormFields.Item("txtCHFSonstiges").Result =
"", 0, ActiveDocument.FormFields.Item("txtCHFSonstiges").Result))
End Sub
Sub pGetField()
If Selection.FormFields.Count = 1 Then
strField = Selection.FormFields(1).Name
ElseIf Selection.FormFields.Count = 0 And Selection.Bookmarks.Count
strField = Selection.Bookmarks(Selection.Bookmarks.Count).Name
End If
End Sub
Hope this helps clear things up a bit ;-)