Macro word casilla de verificación + texto a mostrar

Resuelto
Nepenthes6224 Mensajes publicados 24 Estado Miembro -  
 Cmoiaaa -
Hola,
Me gustaría, en el ámbito del trabajo, crear un archivo de Word con casillas que, cuando se marcan, hacen aparecer un texto.
Pensé que lo más simple sería primero poner todo el texto en formato "oculto" y quitar este formato oculto cuando la casilla está activada (por ejemplo, colocando todo el texto en un marcador).
Sin embargo, no tengo idea de VBA y, aunque he investigado aquí y allá y comprendí el principio, no soy capaz de encontrar las "palabras clave" adecuadas para que los comandos funcionen.
Trabajo con Word Professional Plus 2010 (versión en inglés).
Gracias por tu ayuda.
PD: había creado un archivo de ejemplo, pero no sé cómo insertar un archivo adjunto aquí.

14 respuestas

  1. Nepenthes6224 Mensajes publicados 24 Estado Miembro 5
     
    https://www.cjoint.com/c/FJyoQtXtIxq

    Gracias
    Aquí está el enlace

    Mis datos son "confidenciales", así que he creado un archivo tipo que no tiene nada que ver :-)
    Efectivamente, hay mucho que ocultar.
    A veces es texto (varias líneas), e incluso un inserto de Excel
    Diría que tengo como máximo 5 o 6 casillas para marcar

    Este es el estilo de macro al que he llegado que me parecía más sencillo (pero hay un error de programación en alguna parte :-(

    Private Sub CheckBox4_Click()
    If CheckBox4.Value = True Then
    Selection.GoTo What:=wdGoToBookmark, Name:="purif"
    Selection.Font.Hidden = False

    End If
    End Sub

    No sé si la programación te dice algo sobre la casilla de verificación que utilizo (no sé cuál estoy usando, pero estoy dispuesta a usar otra si me explican cuál elegir y cómo diferenciarla de las demás)

    No estoy muy puesta, lo siento.
    4
  2. m@rina Mensajes publicados 27515 Fecha de registro   Estado Moderador Última intervención   11 562
     
    Bueno, hay pocas casillas que marcar, pero mucho texto, y además, textos formateados de manera diferente, e incluso inserciones de Excel.

    Por lo tanto, creo que la solución más sensata es usar bloques de construcción.

    Aquí explico el principio con controles de contenido:
    https://faqword.com/index.php/word/faq-word/gestion-des-macros/847-les-quickparts-personnalises-ne-fonctionnent-pas-dans-une-macro

    El problema no reside en insertar los textos, sino en eliminarlos si se desmarcan las casillas. Para resolver este problema, lo mejor es crear tablas para cada casilla de verificación, tablas que se pueden vaciar si la casilla está desmarcada.

    Aquí hay un ejemplo creado a partir de tu archivo. He creado tres bloques de construcción llamados cb41, cb2 y cb3 que se insertarán según si marcas las CheckBox 1, 2 y 3.
    https://www.cjoint.com/c/FJyqJJKFhbl

    Tu idea de ocultar los textos no era buena idea.

    m@rina

    --
    Cuídense de la tisana: es un veneno peligroso...
    3
    1. Cmoiaaa
       

      Hola M@rina

      He intentado seguir tu tutorial https://www.faqword.com/index.php/word/132-formulaires-controles/939-je-souhaite-qu-un-texte-s-affiche-automatiquement-apres-avoir-coche-un-controle-de-contenu-case-a-cocher

      pero tengo dificultades con "pegar la macro siguiente en tu plantilla" y también con "Reemplaza la ruta de la plantilla por la tuya".

      ¿Podrías detallar más tus explicaciones?

      Cordialmente

      0
  3. Nepenthes6224 Mensajes publicados 24 Estado Miembro 5
     


    Aquí, como no sé cómo adjuntar en formato Word, hice una captura de pantalla de mi archivo, tal vez pueda ayudar...
    1
  4. m@rina Mensajes publicados 27515 Fecha de registro   Estado Moderador Última intervención   11 562
     
    Hola,

    Primero, deberíamos saber qué tipo de casillas de verificación estás utilizando. Hay tres tipos: campos de formulario, controles de contenido y controles ActiveX.

    Luego, si vislumbro tu documento, tengo la impresión de que no querrías un solo texto, sino toda una serie de información una vez que la casilla esté marcada.
    Además, veo que la información está dispuesta de manera diferente.

    Entonces, ¿cuántas casillas de verificación debería tener el archivo aproximadamente? Y luego, ¿cuánto texto (aproximadamente) debería aparecer o desaparecer para cada casilla? El número de informaciones dependerá de la solución.
    Podemos usar campos (SI la casilla de verificación1 = verdadero entonces...), también podemos programar macros.

    Así que, a la espera de esta información... puedes proporcionarnos un ejemplo de tu documento poniéndolo aquí:
    https://www.cjoint.com/ sin olvidar dar el enlace.

    m@rina

    pd: he puesto tu pregunta en Word, porque hay muy pocas personas que programan macros con Word.

    --
    Cuida con la infusión: es un veneno peligroso...
    0
  5. Nepenthes6224 Mensajes publicados 24 Estado Miembro 5
     
    Lo siento por la demora, pero solo puedo verificar esto en el trabajo...
    Tengo un mensaje de error cuando intento marcar las casillas de tu archivo. ¿Es normal? ¿Debo activar algo en Word además de la barra de desarrollador?
    Gracias
    0
    1. m@rina Mensajes publicados 27515 Fecha de registro   Estado Moderador Última intervención   11 562
       
      Hola,

      No hay razón para que no funcione.
      Sin embargo, veo que el documento está en solo lectura, así que de todas formas no podrá funcionar. Así que guárdalo en tu disco duro y vuelve a intentarlo.

      m@rina
      0
  6. Nepenthes6224 Mensajes publicados 24 Estado Miembro 5
     
    De hecho, funciona mejor cuando edito :-)

    He podido volver a trabajar con las 3 casillas de verificación que creaste, y funciona :-)
    Sin embargo, intenté crear una por mí misma y nuevamente fallé :-(
    No soy buena en esto...
    Marca que no reconoce el camino.
    ¿Puedes explicarme concretamente lo que haces para que funcione?
    He ingresado mi texto en auto-texto, y en el lugar donde debe mostrarse el auto-texto, inserto un marcador con el mismo nombre que el auto-texto.
    Copio tu código que adapto (número de casilla de verificación, nombre del auto-texto, y esto:
    ActiveDocument.Tables(5).Rows(1).Range.Text = ""
    (he visto que haces un incremento de Tablas, pero no encontré en el documento ninguna tabla ni otra cosa, así que no lo entendí muy bien...)
    ¿Qué estoy haciendo mal?
    0
  7. Nepenthes6224 Mensajes publicados 24 Estado Miembro 5
     
    Creo que realmente está a nivel de esta tabla, porque al modificar la primera casilla de verificación, el texto ya no desaparece cuando desmarco, sino que se duplica si vuelvo a hacer clic...
    Por otro lado, he mejorado el autotexto en la segunda, que funciona correctamente...
    La captura de pantalla parece no cargarse, pero aparentemente el problema que él destaca estaba a nivel de Which:=wdGoToAbsolute.
    0
    1. m@rina Mensajes publicados 27515 Fecha de registro   Estado Moderador Última intervención   11 562
       
      Entonces, primero que nada, este documento es un modelo. Los bloques de construcción que he puesto se encuentran en el modelo. El objetivo era proporcionarte un documento que funcione, ya que por defecto los bloques de construcción se encuentran en el Building blocks.dot o en el normal.dot. El interés de incluirlos en el modelo en cuestión es poder difundir este modelo con todo lo necesario.
      Por lo tanto, la macro contiene el código que encuentra el modelo y los bloques de construcción que lo acompañan.

      Respecto a las tablas, el número es el número de orden de las tablas en el documento. wdGoToAbsolute da el número de manera absoluta en el documento, a diferencia de wdGoToRelative que da el número en relación con el lugar donde se encuentra.

      Para el checkbox, ¿cuál es el contenido a insertar? Si se trata de una tabla, es necesario poner un retorno § antes y después.

      Aquí lo explico:
      http://download.faqword.com/index.php/word-exemples/formulaires-controles
      (fc07.dotm)

      m@rina
      0
  8. Nepenthes6224 Mensajes publicados 24 Estado Miembro 5
     
    Me gusta este tipo de modelo porque es exactamente lo que debo hacer: crear un archivo modelo que me servirá en mis futuras experiencias, pero que también debo compartir con mis colegas para que ellos puedan usarlo... (de lo contrario, para mi información personal, ¿qué es exactamente el template .dot? "Estúpidamente" guardar el documento finalizado en formato .dot?
    Para las tablas, mi problema es que no las veo. ¿Están con borde blanco para hacerlas invisibles? (No puedo verificar desde casa porque solo tengo una tableta) ¿o es otra cosa a la que llamamos tabla?
    Y supongamos que después debo escribir texto, luego reintroducir una zona de casillas de verificación. ¿Cómo hacer para que diferencie las 2 tablas?
    Aquí empecé con lo más simple: texto, pero después tendré otra tabla de Excel para insertar...
    ¿Qué es retorno de párrafo? ¿Una tecla especial?
    Disculpa, no tengo ni idea...
    De todos modos, un gran gracias por tu ayuda.
    0
    1. m@rina Mensajes publicados 27515 Fecha de registro   Estado Moderador Última intervención   11 562
       
      Un modelo de Word (desde la versión 2007) tiene una extensión DOTX o DOTM para aquellos que tienen macros.
      La extensión DOT era la extensión de los modelos hasta la versión 2003. Sin embargo, aún subsiste para el archivo building blocks.dot.

      Para las tablas que no ves, los retornos de párrafo que no ves, etc., es porque no muestras los caracteres no imprimibles. Cuando trabajas con Word, lo repito a menudo, es imperativo mostrar estos caracteres, ya que es la única manera de saber lo que estás haciendo. Debes hacer clic en el botón ¶, en la pestaña Inicio.

      Si tienes un problema con esta tabla, quizás sea porque ha sido eliminada, por ejemplo.

      m@rina
      0
  9. Nepenthes6224 Mensajes publicados 24 Estado Miembro 5
     
    Hola,

    No veo la tabla ni siquiera al mostrar los caracteres no imprimibles.
    Quise crear un nuevo documento de Word directamente, y no quiere guardar mis macros (que, además, no funcionan).
    ¿Qué estoy haciendo mal?
    Esto es lo que hago:
    Creo una tabla, inserto mis casillas de verificación en esta tabla. A continuación (en la misma celda de la tabla pero en la fila siguiente), pongo un marcador "vacío" que nombro, luego añado lo que quiero ocultar, que agrego a la lista de auto-entrada (lo nombro con el mismo nombre que mi marcador). Luego, edito la casilla de verificación, la renombro y voy al VBA. Copio tu código adaptando (nombre del auto-texto, fila de la tabla)
    Después, espero que funcione, y es un fracaso...

    Gracias
    0
  10. Nepenthes6224 Mensajes publicados 24 Estado Miembro 5
     
    Y cuando quiero abrir el archivo en el que trabajé ayer (a partir de tu archivo), se abre solo como doc1.doc, y ya no como .dot, y no sé cómo editarlo ni añadir otras macros o modificar las que no funcionan.
    0
    1. m@rina Mensajes publicados 27515 Fecha de registro   Estado Moderador Última intervención   11 562
       
      Hola,

      Creo que te has metido en un documento complicado cuando no conoces mucho Word. No puedo hacer formaciones completas en un foro... Así que te aconsejo que empieces por comprar un buen libro porque haces muchas preguntas que son básicas para el uso de Word.

      Para tu documento, te propongo que descargues el ejemplo que he subido y cuyo enlace he compartido más arriba.

      Para responder rápidamente a tus problemas:
      - Las casillas de verificación no se colocan en las tablas (ver modelo)
      - Un modelo crea un nuevo documento cuando haces doble clic en él, que es la intención de un modelo. Para abrirlo, hay que hacer clic derecho => Abrir, o bien abrirlo desde la aplicación.

      m@rina
      0
  11. Nepenthes6224 Mensajes publicados 24 Estado Miembro 5
     
    Hola,

    Disculpa por la demora, pero acabo de regresar de una semana de vacaciones.
    Tengo un libro (VBA para dummies), pero no me ayuda. O me pierdo o no encuentro la relación entre el documento de Word y el código VBA.
    También busqué en internet y no hay ningún tutorial disponible :-(, por eso decidí venir a este foro.
    Esperaba que fuera un tutorial simple, pero parece realmente complicado :-(
    Así que me limitaré a modificar el documento que hiciste basado en mi ejemplo (me limitaré a 3 casillas de verificación, es poco, pero ya es algo).
    De todos modos, gracias por tu ayuda, ya me está sirviendo bastante.
    0
    1. m@rina Mensajes publicados 27515 Fecha de registro   Estado Moderador Última intervención   11 562
       
      Hola,

      Cuando hablaba de un libro, me refería a un libro sobre Word, y no sobre VBA (ni siquiera para principiantes). No se puede abordar el VBA sin conocer ya bien el software...

      m@rina
      0
  12. Nepenthes6224 Mensajes publicados 24 Estado Miembro 5
     
    Hola,
    Sí, noto que estoy descubriendo muchas funcionalidades en Word a medida que avanzo en mis plantillas.
    Y gracias al modelo, he podido salir adelante con todos :-)
    Solo tengo una última pregunta: ¿cómo puedo hacer para que los demás puedan utilizar mis documentos?
    ¿Debo guardar el código en la plantilla directamente y no en una plantilla adjunta?
    Si hago eso, también da error, pero sospecho que es porque el auttexto no se transfiere (verificado cuando creo una simple selección de autotexto). ¿Cómo puedo hacer para que también se transfiera? Por el momento, guardo todo en "general" o en el nombre de mi archivo de plantilla para las macros.
    Gracias de antemano
    Prometo que después dejaré de molestarte.
    0
  13. m@rina Mensajes publicados 27515 Fecha de registro   Estado Moderador Última intervención   11 562
     
    Buenas noches,

    Para que otros usuarios puedan utilizar este modelo, es preferible que los bloques de construcción se encuentren en el modelo. Esa es la razón por la que he proporcionado un modelo (dotm) y no un simple documento (docm). Ver mi explicación en la publicación 9.

    En cuanto a las macros, es un poco similar. Funcionarán si están en el modelo.

    En resumen, hay que distribuir este modelo y nada más, ya que este modelo contiene los bloques de construcción y las macros.

    Uso de un modelo: primero, se coloca en la carpeta de modelos.
    Luego Archivo => Nuevo, se elige el modelo, y se crea así un nuevo documento a partir de este modelo.

    m@rina

    --
    Cuídense de la infusión: es un veneno peligroso...
    0
  14. Nepenthes6224 Mensajes publicados 24 Estado Miembro 5
     
    ¡Genial!
    ¡Gracias por tus explicaciones, funciona!
    Pongo este tema como resuelto :-)
    0