View Single Post
 
Old 11-01-2022, 10:31 PM
gmayor's Avatar
gmayor gmayor is offline Windows 10 Office 2019
Expert
 
Join Date: Aug 2014
Posts: 4,144
gmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud of
Default

There is no macro in your document. DOCX does not support macros.
The following will do what you ask. Put the code in the ThisDocument module of the document and save as macro enabled.
Code:
Option Explicit

Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
Dim oTable As Table
Dim oCC As ContentControl
Dim oRng As Range
Dim i As Integer
    Set oTable = ActiveDocument.Tables(1)
    If ContentControl.Title = "Protocol Type" Then
        If Not ActiveDocument.ProtectionType = wdNoProtection Then
            ActiveDocument.Unprotect
        End If
        If ContentControl.Range.Text = "D" Then
            Set oRng = oTable.Range.Cells(38).Range
            oRng.End = oRng.End - 1
            oRng.Text = "Stability timepoint"

            Set oRng = oTable.Range.Cells(39).Range
            oRng.End = oRng.End - 1
            Set oCC = oRng.ContentControls.Add(wdContentControlText)
            With oCC
                .Title = "Timepoint"
                .Tag = "Timepoint"
                .SetPlaceholderText , , "Timepoint"
                .Range.Editors.Add (wdEditorEveryone)
            End With

            Set oRng = oTable.Range.Cells(40).Range
            oRng.End = oRng.End - 1
            Set oCC = oRng.ContentControls.Add(wdContentControlDropdownList)
            With oCC
                .Title = "Temperature"
                .Tag = "Temperature"
                .SetPlaceholderText , , "Select Temperature"
                .DropdownListEntries.Add .PlaceholderText, ""
                .DropdownListEntries.Add "ACC", "ACC"
                .DropdownListEntries.Add "Long Term", "Long Term"
                .DropdownListEntries.Add "Ambient", "Ambient"
                .Range.Editors.Add (wdEditorEveryone)
            End With
        Else
            For i = 38 To 40
                Set oRng = oTable.Range.Cells(i).Range
                oRng.End = oRng.End - 1
                oRng.Text = ""
            Next i
        End If
        ContentControl.Range.Editors.Add (wdEditorEveryone)
        ActiveDocument.Protect (wdAllowOnlyReading)
    End If
lbl_Exit:
    Set oCC = Nothing
    Set oRng = Nothing
    Set oTable = Nothing
    Exit Sub
End Sub
__________________
Graham Mayor - MS MVP (Word) (2002-2019)
Visit my web site for more programming tips and ready made processes www.gmayor.com
Reply With Quote