View Single Post
 
Old 10-02-2015, 04:20 AM
brent chadwick brent chadwick is offline Windows 8 Office 2013
Advanced Beginner
 
Join Date: Mar 2015
Posts: 86
brent chadwick is on a distinguished road
Default

Yeah, I know it's a mess, that's why I'm asking for help from people that have skills way beyond mine. I tried to take code from another one that you guys helped me with-didn't work. Here's what the code is supposed to do-

"U.S. Public Records Index, vol. X," Ancestry (http://www.ancestry.com : viewed 5 September 2015), entry for Name, Place, citing "voter registration lists, public record filings, historical residential records, and other household database listings."


"United States Public Records 1970-2010," database, FamilySearch.org (https://familysearch.org/search/collection/2199956 : viewed 5 September 2015), citing "telephone directories, property tax assessments, credit applications, and other records available to the public, entry for Firstname Lastname.

These two need to be combined, the dropdown menu being the text in quotes. Here's the code (such as it is) for the complete macro-

Code:
Option Explicit
Const BmkCCBmk As String = "CCBookmark" 'bookmark name
Const Pwd As String = "" 'Filling in Forms password

Sub PublicRecordsCombinedMacro()
'
' PublicRecordsCombinedMacro Macro
'
'
Application.ScreenUpdating = False
Dim Rng As Range, FmFld As FormField, i As Long
Set Rng = Selection.Range
With ActiveDocument
  Rng.Collapse wdCollapseStart
  'Dropdown Menu for Record Collection
  Set FmFld = .FormFields.Add(Range:=Rng, Type:=wdFieldFormDropDown)
  With FmFld
    .Name = "RecordsDD"
    .EntryMacro = ""
    .ExitMacro = "ConditionalContentPublicRecords"
    .Enabled = True
    With .DropDown.ListEntries
      .Add Name:="Record Collection"
      .Add Name:="U.S. Public Records Index"
      .Add Name:="United States Public Records 1970-2010"
    
    End With
  End With
  With Rng
    .End = FmFld.Range.End
    .InsertBefore """"
    .InsertAfter ","
    .Collapse wdCollapseEnd
  End With
  .Bookmarks.Add Name:=BmkCCBmk, Range:=Rng
  With Rng
    .End = FmFld.Range.End
    .Collapse wdCollapseEnd
  End With
  .Protect Type:=wdAllowOnlyFormFields, NoReset:=True, Password:=Pwd
  End With
  Set FmFld = Nothing: Set Rng = Nothing
Application.ScreenUpdating = True
End Sub

Sub ConditionalContentPublicRecords()
'
' ConditionalContent Macro
Application.ScreenUpdating = False
Dim Prot As Variant, BkMrkRng As Range, Rng As Range, FmFld As FormField
Dim StrFmt As String, CCBmk As Boolean
With ActiveDocument
  Prot = .ProtectionType
Application.ScreenUpdating = False
Select Case Selection.FormFields("RecordsDD").Result
Case "U.S. Public Records Index": CCBmk = True: StrFmt = " vol."
Case "United States Public Records 1970-2010": CCBmk = True: StrFmt = " database,"
Case Else: CCBmk = False: StrFmt = ""
End Select
If .ProtectionType <> wdNoProtection Then
    Prot = .ProtectionType
    .Unprotect
    'Update the bookmark referenced via BmkPopn
    Set BkMrkRng = .Bookmarks(CCBmk).Range
    If (CCBmk = True) And (Len(BkMrkRng.Text) = 0) Or _
      (CCBmk = False) And (Len(BkMrkRng.Text) <> 0) Then
      If (CCBmk = True) And (Len(BkMrkRng.Text) = 0) Then
        BkMrkRng.Text = ", "
      Else
        BkMrkRng.Delete
      End If
      .Bookmarks.Add CCBmk, BkMrkRng
    End If
    Select Case .FormFields("RecordsDD").Result
    
Case "U.S. Public Records Index"
If InStr(BkMrkRng.Text, ", vol. ") = 0 Then
          'Text & Formfield for volume
          With Rng
            .Text = StrFmt & ", vol. "
            .Collapse wdCollapseEnd
          End With
          Set FmFld = .FormFields.Add(Range:=Rng, Type:=wdFieldFormTextInput)
          FmFld.TextInput.EditType wdRegularText, "X"
          With Rng
    .Collapse wdCollapseEnd
    .InsertAfter ", "
    .End = FmFld.Range.End
    .Collapse wdCollapseEnd
    ' Ancestry Text and Viewing Record Date
    .InsertAfter " Ancestry (http://www.ancestry.com : viewed " & _
      Format(Now, "d MMMM yyyy") & "),"
    .Words(4).Font.Italic = True
    .Collapse wdCollapseEnd
    .InsertAfter ", entry for"
    'Name Form Field
  End With
    Set FmFld = .FormFields.Add(Range:=Rng, Type:=wdFieldFormTextInput)
    FmFld.TextInput.EditType wdRegularText, "Name"
    With Rng
    .Collapse wdCollapseEnd
    .InsertAfter ", "
    .End = FmFld.Range.End
    .Collapse wdCollapseEnd
    Set FmFld = .FormFields.Add(Range:=Rng, Type:=wdFieldFormTextInput)
    FmFld.TextInput.EditType wdRegularText, "Place"
    'Place Form Field
    With FmFld
    .Name = "Place"
    .EntryMacro = ""
    .ExitMacro = "UnlinkFields"
    .Enabled = True
    .TextInput.EditType Type:=wdRegularText, Default:="X", Format:="Title case"
    .TextInput.Width = 0
  End With
  'Additional Text
    With Rng
    .Collapse wdCollapseEnd
    .InsertAfter ", citing "" voter registration lists, public record filings, historical residential records, and other household database listings."""
    .End = FmFld.Range.End
    .Collapse wdCollapseEnd
    
    Select Case .FormFields("RecordsDD").Result

    
    Case "United States Public Records 1970-2010"
    If (InStr(BkMrkRng.Text, "database") = 0) Then
    With Rng
    .Text = StrFmt & ", database, "
    .Collapse wdCollapseEnd
    .InsertAfter "FamilySearch.org (https://www.familysearch.org/search/collection/2199956 : viewed " & _
    Format(Now, "d MMMM yyyy") & "), citing ""telephone directories, property tax assessments, credit applications, and other records available to the public,"" entry for """
    .Words(4).Font.Italic = True
    .Collapse wdCollapseEnd
    End With
    'Firstname Lastname Form Field
    Set FmFld = .FormFields.Add(Range:=Rng, Type:=wdFieldFormTextInput)
    With FmFld
    .Name = "FirstnameLastname"
    .EntryMacro = ""
    .ExitMacro = "UnlinkFields"
    .Enabled = True
    .TextInput.EditType Type:=wdRegularText, Default:="X", Format:="Title case"
    .TextInput.Width = 0
    End With
    With Rng
    .End = FmFld.Range.End
    .InsertAfter "."
    .Collapse wdCollapseEnd
    End With
    'Case Else: BkMrkRng.Text = ""
    End Select
    If Not FmFld Is Nothing Then BkMrkRng.End = FmFld.Range.End
    End If
    .Protect Type:=Prot, Password:=Pwd, NoReset:=True
  End If
End With
Set FmFld = Nothing: Set Rng = Nothing: Set BkMrkRng = Nothing
Application.ScreenUpdating = True
End Sub
Trying to learn, thanks for your help.
Reply With Quote