![]() |
|
#1
|
|||
|
|||
|
I have template that I've created with Fillin Fields. These are great for the initial creation of the document, but these go through various iterations and drafts, and it's annoying to have 8-10 pop-up boxes appear every time the document is opened (it's also causing some issues where people hit 'okay' and not 'cancel').
Is there a macro I can run or program a button to that will find and replace just the fillin fields with the static text entered by the user? I don't want to wipe fields out entirely as the documents have active page numbers that need to continue to update correctly. Any assistance here would be fantastic. Thanks! |
|
#2
|
|||
|
|||
|
I suggest you employ a userform for initially creating the document:
http://gregmaxey.com/word_tip_pages/..._userform.html |
|
#3
|
|||
|
|||
|
I think this macro would replace the fill-in fields with the text that shows up as the result after the field is filled in:
Sub UnlinkFillInFields() Dim myField As Field For Each myField In ActiveDocument.Fields If myField.Type = wdFieldFillIn Then myField.Unlink End If Next myField End Sub |
|
#4
|
|||
|
|||
|
Quote:
I think I'm about 90% there following your instructions, but I think I'm missing something because it doesn't quite work :/ I have a form with 3 text boxes (GrpName, PriorPY, CurrentPY) and two combo boxes (PYMonth1, PYMonth2). The trouble I'm experiencing is trying to get the data entered in the form into the document. Here's what I have (the "var" reference in VBA matches the field in the word document) Code:
Option Explicit
Sub AutoNew()
Create_Reset_Variables
CallUF
lbl_Exit:
Exit Sub
End Sub
Sub CallUF()
Dim oFrm As frmSurvey
Dim oVars As Word.Variables
Dim strTemp As String
Dim oRng As Word.Range
Dim i As Long
Dim strMultiSel As String
Set oVars = ActiveDocument.Variables
Set oFrm = New frmSurvey
With oFrm
.Show
oVars("varGrpName").Value = .txtGrpName
oVars("varCurrentPY").Value = .txtCurrentPY
oVars("varPriorPY").Value = .txtPriorPY
oVars("varPYMonth1").Value = .txtPYMonth1
oVars("varPYMonth2").Value = .txtPYMonth2
Else
MsgBox "Form cancelled by user"
End If
End With
Unload oFrm
Set oFrm = Nothing
Set oVars = Nothing
Set oRng = Nothing
lbl_Exit:
Exit Sub
End Sub
Many thanks! |
|
#5
|
|||
|
|||
|
Well, you are missing part of a If conditional statement. You have the Else and End if part put the not IF.
That should be something like: If .Tag = 1 Then where Tag is set using the Userform command button e.g. Sub commandbutton1_Click() Tag = 1 Hide End If You have to have docvariable fields in the document to display the text: {DocVariable varGrpName} etc. and add a Fields.Update command. |
|
#6
|
|||
|
|||
|
Quote:
\What I understand you saying is that within the module, I do the If .Tag = 1 then... and then continue to telling it what to put where? I do have the docvariable fields in the document and have them named and matching, I think the fields.update is what I'm missing. I'll give this a shot - I greatly appreciate the help!! |
|
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
Macro to find text and replace with form field containing that text
|
iiiiifffff | Word VBA | 16 | 06-04-2016 01:47 AM |
MS WORD 2007 - Content Control versus Text Form Field question
|
chamdan | Word VBA | 2 | 11-12-2013 09:51 PM |
| Macro to populate a text form field based on dropdown selection | koloa | Word | 0 | 10-20-2011 11:52 AM |
FILLIN function
|
Andy2011 | Word | 9 | 10-19-2011 02:51 PM |
Word Macro That Checks a Check Box Form Field When File Print is Executed
|
DKerne | Word VBA | 4 | 06-09-2011 11:54 AM |