Hi, I'm kinda new to macros on word. So, I managed to do a two-level dependent dropdown list with contentcontrol boxes. I want to make third level but this one is autopopulated. I saw the method with values, but because it's a dependent dropdown list there are no values for the second level. I've looked through all posts on this thread but it seems there's no answer for what I need.
I would really be thankful if someone can help me.
This is the code I've got so far, what I want is that after I select the second dropdown another control content box gets filled on its own with a set value.
Let's say I select
Quote:
Obtiene información de textos orales
|
from
Code:
Case "Se comunica oralmente en inglés como lengua extranjera"
StrOut = "Obtiene información de textos orales;Infiere e interpreta información de textos orales;Adecúa, organiza y desarrolla las ideas de forma coherente y cohesionada;Utiliza recursos no verbales y paraverbales de forma estratégica;Interactúa estratégicamente con distintos interlocutores;Reflexiona y evalúa la forma, el contenido y el contexto del texto oral"
then I want a controlcontent box to automatically populate with a set text.
Code:
Option Explicit
Dim StrOption As String
Private Sub Document_ContentControlOnEnter(ByVal CCtrl As ContentControl)
StrOption = CCtrl.Range.Text
End Sub
Private Sub Document_ContentControlOnExit(ByVal CCtrl As ContentControl, Cancel As Boolean)
Application.ScreenUpdating = False
Dim i As Long, StrOut As String
With CCtrl
If .Title = "Competencias" Then
If StrOption = .Range.Text Then Exit Sub
Select Case .Range.Text
Case "Se comunica oralmente en inglés como lengua extranjera"
StrOut = "Obtiene información de textos orales;Infiere e interpreta información de textos orales;Adecúa, organiza y desarrolla las ideas de forma coherente y cohesionada;Utiliza recursos no verbales y paraverbales de forma estratégica;Interactúa estratégicamente con distintos interlocutores;Reflexiona y evalúa la forma, el contenido y el contexto del texto oral"
Case "Lee diversos tipos de textos en inglés como lengua extranjera"
StrOut = "Obtiene información del texto escrito;Infiere e interpreta información del texto escrito;Reflexiona y evalúa la forma, el contenido y contexto del texto"
Case "Escribe diversos tipos de textos en inglés como lengua extranjera"
StrOut = "Adecúa el texto a la situación comunicativa;Organiza y desarrolla las ideas de forma coherente y cohesionada;Utiliza convenciones del lenguaje escrito de forma pertinente;Reflexiona y evalúa la forma, el contenido y contexto del texto escrito"
Case Else
.Type = wdContentControlText
.Range.Text = ""
.Type = wdContentControlDropdownList
End Select
With ActiveDocument.SelectContentControlsByTitle("Capacidades")(1)
.DropdownListEntries.Clear
.DropdownListEntries.Add .PlaceholderText
For i = 0 To UBound(Split(StrOut, ";"))
.DropdownListEntries.Add Split(StrOut, ";")(i)
Next
.Type = wdContentControlText
.Range.Text = ""
.Type = wdContentControlDropdownList
End With
With ActiveDocument.SelectContentControlsByTitle("Capacidades2")(1)
.DropdownListEntries.Clear
.DropdownListEntries.Add .PlaceholderText
For i = 0 To UBound(Split(StrOut, ";"))
.DropdownListEntries.Add Split(StrOut, ";")(i)
Next
.Type = wdContentControlText
.Range.Text = ""
.Type = wdContentControlDropdownList
End With
With ActiveDocument.SelectContentControlsByTitle("Capacidades3")(1)
.DropdownListEntries.Clear
.DropdownListEntries.Add .PlaceholderText
For i = 0 To UBound(Split(StrOut, ";"))
.DropdownListEntries.Add Split(StrOut, ";")(i)
Next
.Type = wdContentControlText
.Range.Text = ""
.Type = wdContentControlDropdownList
End With
With ActiveDocument.SelectContentControlsByTitle("Capacidades4")(1)
.DropdownListEntries.Clear
.DropdownListEntries.Add .PlaceholderText
For i = 0 To UBound(Split(StrOut, ";"))
.DropdownListEntries.Add Split(StrOut, ";")(i)
Next
.Type = wdContentControlText
.Range.Text = ""
.Type = wdContentControlDropdownList
End With
End If
If .Title = "Competencias2" Then
If StrOption = .Range.Text Then Exit Sub
Select Case .Range.Text
Case "Se comunica oralmente en inglés como lengua extranjera"
StrOut = "Obtiene información de textos orales;Infiere e interpreta información de textos orales;Adecúa, organiza y desarrolla las ideas de forma coherente y cohesionada;Utiliza recursos no verbales y paraverbales de forma estratégica;Interactúa estratégicamente con distintos interlocutores;Reflexiona y evalúa la forma, el contenido y el contexto del texto oral"
Case "Lee diversos tipos de textos en inglés como lengua extranjera"
StrOut = "Obtiene información del texto escrito;Infiere e interpreta información del texto escrito;Reflexiona y evalúa la forma, el contenido y contexto del texto"
Case "Escribe diversos tipos de textos en inglés como lengua extranjera"
StrOut = "Adecúa el texto a la situación comunicativa;Organiza y desarrolla las ideas de forma coherente y cohesionada;Utiliza convenciones del lenguaje escrito de forma pertinente;Reflexiona y evalúa la forma, el contenido y contexto del texto escrito"
Case Else
.Type = wdContentControlText
.Range.Text = ""
.Type = wdContentControlDropdownList
End Select
With ActiveDocument.SelectContentControlsByTitle("Capacidades5")(1)
.DropdownListEntries.Clear
.DropdownListEntries.Add .PlaceholderText
For i = 0 To UBound(Split(StrOut, ";"))
.DropdownListEntries.Add Split(StrOut, ";")(i)
Next
.Type = wdContentControlText
.Range.Text = ""
.Type = wdContentControlDropdownList
End With
With ActiveDocument.SelectContentControlsByTitle("Capacidades6")(1)
.DropdownListEntries.Clear
.DropdownListEntries.Add .PlaceholderText
For i = 0 To UBound(Split(StrOut, ";"))
.DropdownListEntries.Add Split(StrOut, ";")(i)
Next
.Type = wdContentControlText
.Range.Text = ""
.Type = wdContentControlDropdownList
End With
With ActiveDocument.SelectContentControlsByTitle("Capacidades7")(1)
.DropdownListEntries.Clear
.DropdownListEntries.Add .PlaceholderText
For i = 0 To UBound(Split(StrOut, ";"))
.DropdownListEntries.Add Split(StrOut, ";")(i)
Next
.Type = wdContentControlText
.Range.Text = ""
.Type = wdContentControlDropdownList
End With
With ActiveDocument.SelectContentControlsByTitle("Capacidades8")(1)
.DropdownListEntries.Clear
.DropdownListEntries.Add .PlaceholderText
For i = 0 To UBound(Split(StrOut, ";"))
.DropdownListEntries.Add Split(StrOut, ";")(i)
Next
.Type = wdContentControlText
.Range.Text = ""
.Type = wdContentControlDropdownList
End With
End If
End With
Application.ScreenUpdating = True
End Sub
Sorry if the message is too long or I go around the topic too many times, I'm no expert at programming and I want to be as clear as possible. Again, thank you in advance for any response.