Thread: [Solved] Make a field required
View Single Post
 
Old 07-26-2022, 09:49 PM
Guessed's Avatar
Guessed Guessed is offline Windows 10 Office 2016
Expert
 
Join Date: Mar 2010
Location: Canberra/Melbourne Australia
Posts: 4,166
Guessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant future
Default

As alluded to in my assumption, you can't have two instances of the same macro names in the same module. Try replacing the code you have with this single macro which merges the intent of both macros with a bit more flexibility. Note that there is a difference between the Tag and Title properties on a Content Control. Either can be used in the code.
Code:
Private Sub Document_ContentControlOnExit(ByVal aCC As ContentControl, Cancel As Boolean)
  If aCC.ShowingPlaceholderText Then
    Select Case aCC.Tag
      Case "Rev. #", "PDR #", "Date of Discovery", "Type"   'these CCs require an answer
        MsgBox "This Content Control requires a response.", vbInformation + vbOKOnly, "INPUT REQUIRED"
        Cancel = True
    End Select
  Else    'if CC has content, check its type matches the content
    If aCC.Tag Like "*[#]" Then     'if the CCs tag ends with '#'
      If Not IsNumeric(aCC.Range.Text) Then
        MsgBox "This field requires a numeric response.", vbInformation + vbOKOnly, "INPUT REQUIRED"
        Cancel = True
      End If
    ElseIf aCC.Tag Like "*Date*" Then   'if CCs tag includes 'Date'
      If Not IsDate(aCC.Range.Text) Then
        MsgBox "This field requires a date response.", vbInformation + vbOKOnly, "INPUT REQUIRED"
        Cancel = True
      End If
    End If
  End If
End Sub
__________________
Andrew Lockton
Chrysalis Design, Melbourne Australia
Reply With Quote