Como condicionar una lista (osea como hacer un 'if' en word 2007 de una lista)

Iniciado por xknov, 12 Agosto 2019, 08:58 AM

0 Miembros y 1 Visitante están viendo este tema.

xknov

Buenas,

pues el título lo resume todo y lo expresa muy claro pero por si quedan dudas, dejo foto a ver si alguien me puede ayudar. Es que quiero automatizar unos informes en el curro y estaba creando listas pero cuando he querido condicionar una lista, he visto que la opción word no te la daba y no se como hacerlo, como si hiciera un 'if' en SQL.

https://imagizer.imageshack.com/img923/1090/WONoJ9.jpg

Por ejemplo en el segundo cuadro yo selecciono la clasifación animal, si es un reptil,mamifero,pez,ave,etc y que en el cuadro de la derecha si selecciono 'PECES' pues que me aparezca una lista solo de las especies de 'peces' y que si selecciono otra clasificación como mamifero en el tercer cuadro me aparezca una lista solo de las especies de mamiferos en vez de las especies de peces. Espero que se entienda mi pregunta, un saludito.  :)


EDIT:

Al final creo que he encontrado lo que buscaba, voy a probarlo ahora mismo.
Por si a alguien tiene la misma duda en un futuro, dejo aquí la respuesta y un enlace de referencia https://groups.google.com/forum/#!topic/microsoft.public.es.word/9g7doXFMTtA

Nos vamos a visual Basic, para ello Alt+F11 y se nos abre visual Basic
Word , vamos al menú Insertar y un click donde dice "Modulo" se te ha
creado un modulo 1 y en esa ventana de codigo que se te ha abierto
copias y pegas el siguiente codigo:

'---------------------------------------------------
Sub Unir_Dos_Listas()

Dim Lista As FormFields
Set Lista = ActiveDocument.FormFields
Select Case Lista("Lista_Uno").Result
     Case Is = "A"
         With Lista("Lista_dos").DropDown
         .ListEntries.Clear
         .ListEntries.Add "manzana"
         .ListEntries.Add "pera"
         .Value = 1
         End With

     Case Is = "B"
         With Lista("Lista_dos").DropDown
         .ListEntries.Clear
         .ListEntries.Add "pera"
         .ListEntries.Add "limon"
         .Value = 1
         End With

     Case Is = "C"
     With Lista("Lista_dos").DropDown
         .ListEntries.Clear
         .ListEntries.Add "limon"
         .Value = 1
         End With

End Select

End Sub

'--------------------------------------------

Una vez pegado el codigo , cierra Visual Basic y situate en el documento
, y en esos dos  campos de lista que has agregado haz lo siguiente:


  nos vamos a situar en el campo de lista primero que hemos puesto y
botón derecho ratón y clic en propiedades, se nos abre el cuadro de
dialogo "opciones de campo de formulario con listas deplegables", en ese
cuadro ponemos lo siguiente:

En elementos de la lista ponemos A, B, C y los agregamos ,  en ejecutar
macro desplegamos el desplegable y ponemos o buscamos la macro que has
acabado de poner en Visual basic word, que se llama Unir_Dos_Listas  la
ponemos al entrar (mediante el desplegable ahi aparecera nuestra macro)
  y tambien rellenamos donde dice  al salir . En donde dice nombre del
marcador ponemos  Lista_Uno  y aceptar

Ahora nos vamos al otro campo de lista que hemos creado y en el ponemos
lo siguiente:

Solo rellenamos donde dice "Ejecutar macro al entrar y tambien donde
dice al salir " y marcamos como la anterior lista. Y también rellenamos
el nombre del marcador que ponemos  Lista_dos  y aceptar

Una vez hecho todo esto, ya podemos darle al Candado para probar
nuestros cuadros de lista, y ya puedes ir realizando pruebas toquiñea
los dos campos y veras como resulta, Si eliges A y te vas al otro campo
(o lista_dos) y clik se te despliega Manzana y pera, Si eliges B y  te
vas al otro campo (o lista_dos) se te despliega Pera y Limon y si eliges
C, pues solo limon :-)