Macro word case à cocher + texte à afficher [Résolu/Fermé]

Signaler
Messages postés
24
Date d'inscription
mercredi 2 janvier 2013
Statut
Membre
Dernière intervention
17 avril 2018
-
Messages postés
24
Date d'inscription
mercredi 2 janvier 2013
Statut
Membre
Dernière intervention
17 avril 2018
-
Bonjour,
J'aimerais dans le cadre du boulot créer un fichier word avec des cases qui , quand elles sont cochées, laissent apparaître un texte.
J'ai pensé que le plus simple serait de d'abord mettre tout le texte sous format "hidden", et de lui retirer ce format masqué quand la case est activée (par exemple en mettant tout le texte dans un bookmark)
Seulement, je ne m'y connais absolument pas en VBA, et, même si en furetant à gauche à droite j'y ai compris le principe, je suis incapable de trouver les bons "mots de code" pour que les commandes fonctionnent
Je travaille sous word professional plus 2010 (version anglaise)
Merci pour votre aide
PS : j'avais créé un fichier d'exemple, mais je ne sais pas comment insérer de pièce jointe ici?!?
A voir également:

14 réponses

Messages postés
16902
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
22 janvier 2021
10 121
Bon, donc il y a peu de cases à cocher, mais beaucoup de texte, et qui plus est, des textes formatés différemment, et même des insertions Excel.

Donc, je pense que la plus sage des solutions est d'utiliser les blocs de construction.

J'explique ici le principe avec des contrôles de contenu :
https://faqword.com/index.php/word/faq-word/gestion-des-macros/847-les-quickparts-personnalises-ne-fonctionnent-pas-dans-une-macro

Le problème ne réside pas dans le fait d'insérer les textes mais de les supprimer si on décoche la case. Pour résoudre ce problème, le mieux est de créer des tableaux pour chaque case à cocher, tableaux qu'on pourra vider si la case est décochée.

Voici un exemple créé à partir de ton fichier. J'ai créé trois blocs de construction nommés cb41, cb2 et cb3 et qui seront insérés selon si tu coches les CheckBox 1, 2 et 3.
https://www.cjoint.com/c/FJyqJJKFhbl

Ton idée de masquer les textes n'était pas une bonne idée.

m@rina
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63550 internautes nous ont dit merci ce mois-ci

Messages postés
24
Date d'inscription
mercredi 2 janvier 2013
Statut
Membre
Dernière intervention
17 avril 2018
1
https://www.cjoint.com/c/FJyoQtXtIxq

Merci
Voici le lien

Mes données sont "confidentielles", donc j'ai créé un fichier-type rien à voir :-)
Effectivement, il y a beaucoup à cacher.
Parfois c'est du texte (plusieurs lignes), voire même un insert excel
J'aurais je dirais max 5 à6 case à cocher

Voilà le style de macro auquel j'en suis arrivée qui me parraissait le plus simple (mais il y a une erreur de programmation quelque part :-(

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

End If
End Sub

Je ne sais pas si la programmation te renseigne sur la case à cocher que j'utilise (je ne sais pas moi laquelle j'utilise mais je suis prête à en utiliser une autre si on m'explique laquelle choisir et comme je la différencie des autres)

Je ne suis pas très calée, désolée
Messages postés
24
Date d'inscription
mercredi 2 janvier 2013
Statut
Membre
Dernière intervention
17 avril 2018
1


Voilà, comme je ne sais pas joindre sous format word, j'ai fait un print screen de mon fichier, ca pourra peut etre aider...
Messages postés
16902
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
22 janvier 2021
10 121
Bonjour,

Tout d'abord il faudrait savoir quel type de cases à cocher tu utilises. Il y en a trois sortes : les champs de formulaires, les contrôles de contenu et les contrôles ActiveX.

Ensuite si j'entrevois ton document, j'ai l'impression que tu voudrais non pas un seul texte, mais toute une série d'informations une fois la case cochée.
Par ailleurs, je vois que les informations sont disposées de manière différente.

Donc, déjà le fichier doit comporter environ combien de cases à cocher ? et ensuite combien (environ) de texte à faire apparaître ou disparaître pour chaque case ? Du nombre d'informations va dépendre la solution.
On peut utiliser des champs (SI case à cocher1 = vrai alors...), on peut également macroter.

Donc, dans l'attente de ces info... tu peux nous fournir un exemple de ton document en le mettant ici :
https://www.cjoint.com/ sans oublier de donner le lien.

m@rina

ps : j'ai remis ta question dans Word, car il y a très peu de monde qui macrote avec Word.


Messages postés
24
Date d'inscription
mercredi 2 janvier 2013
Statut
Membre
Dernière intervention
17 avril 2018
1
Désolée pour le retard, mais je ne peux vérifier cela qu'au boulot...
J'ai un message d'erreur quand j'essaie de cocher les checkbox de ton fichier. C'est normal? Je dois activer quelque chose dans word autre que la barre développeur?
Merci
Messages postés
16902
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
22 janvier 2021
10 121
Bonjour,

Il n'y a pas de raison que ça ne fonctionne pas.
Par contre je vois que le document est en lecture seule, donc ça ne pourra de toutes façons pas fonctionner. Donc enregistre-le sur ton disque dur et reessaie.

m@rina
Messages postés
24
Date d'inscription
mercredi 2 janvier 2013
Statut
Membre
Dernière intervention
17 avril 2018
1
De fait, ca fonctionne mieux quand j'édite :-)

J'ai pu retravailler à partir des 3 checkbox que tu as créé, et ça marche :-)
Par contre, j'ai essayé d'en créer une moi-même, et c'est de nouveau raté :-(
Je ne suis pas douée...
Il marque qu'il ne reconnaît pas le chemin.
Peux-tu m'expliquer concrétement ce que tu fais pour que ça marche?
J'ai bien entré mon texte en auto-texte, et à l'endroit où doit s'afficher l'autotexte, j'insère un signet du même nom que l'autotexte.
Je recopie ton code que j'adapte (numéro de checkbox, nom de l'autotexte, et ceci :
ActiveDocument.Tables(5).Rows(1).Range.Text = ""
(j'ai vu que tu faisais un incrément de Tables, mais je n'ai pas trouvé dans le document de tableau ni autre, donc pas trop compris...)
Qu'est-ce que je fais mal?
Messages postés
24
Date d'inscription
mercredi 2 janvier 2013
Statut
Membre
Dernière intervention
17 avril 2018
1
Je pense que c'est vraiment au niveau de cette table, car en modifiant le 1er checkbox, le texte ne disparaît plus quand je déclique, mais se dédouble si je reclique...
Par contre, j'ai du mieux modifier l'autotexte au 2ème, qui lui fonctionne correctement...
Le print screen ne semble pas se charger, mais apparement le problème que lui souligne était au niveau du Which:=wdGoToAbsolute
Messages postés
16902
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
22 janvier 2021
10 121
Alors tout d'abord, ce document est un modèle.Les blocs de construction que j'ai mis se trouvent dans le modèle. Le but était de te founir un document qui fonctionne car par défaut les blocs de construction se trouve dans le Building blocks.dot ou dans le normal.dot. L'intérêt de les mettre dans le modèle en question est de pouvoir diffuser ce modèle avec tout le nécessaire.
Donc la macro contient le code qui trouve le modèle et les blocs de construction qui vont avec.

Concernant les tableaux, le numéro est le numéro d'ordre des tableaux dans le document. wdGoToAbsolute donne le numéro en absolu dans le document contrairement à wdGoToRelative qui donne le numéro par rapport à l'endroit où l'on se trouve.

Pour le checkbox, quel est le contenu à insérer ? S'il s'agit d'un tableau, il faut mettre un retour § avant et après.

J'explique ici :
http://download.faqword.com/index.php/word-exemples/formulaires-controles
(fc07.dotm)

m@rina
Messages postés
24
Date d'inscription
mercredi 2 janvier 2013
Statut
Membre
Dernière intervention
17 avril 2018
1
J'àime bien ce type de modele car c'est exactement ce que je dois faire : creer un fichier modele qui va me servir dans mes futurs experiences mais que je dois aussi partager avec mes collegues qu'ils puissent aussi s'en servir... (sinon, pour mon info personnelle, c'est uoi exactement le template .dot? "Betement" sauver le document finalise en format .dot?
Pour lew tbleaux, mon soucis est que je ne les vois pas. Ils sont avec bordure blanche pour les rendre invisibles? (Je ne sais pas verifier de chez moi car je n'ai qu'une tablette) ou c'est autre chose qu'on nomme tableau?
Et imaginons qu'après , je doive taper du texte, puis reintroduire une zone de checkbox. Comment faire pour qu'il differentie les 2 tableaux?
Ici, j'avais commencé avec le plus simple : du texte, mais par la suite, j'aurai un autre tableau excel à insérer. ..
C'est quoi retour paragraphe? Une touche particulière?
Desolee, je ne m'y connais absolument pas...
En tout cas' u tout grand merci pour ton aide
Messages postés
16902
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
22 janvier 2021
10 121
Un modèle Word (depuis la v 2007) a une extension DOTX ou DOTM pour ceux qui ont des macros.
L'extension DOT était l'extension des modèles jusqu'à la version 2003. Elle subsiste néanmoins pour le fichier building blocks.dot.

Pour les tableaux que tu ne vois pas, les retours paragraphe que tu ne vois pas, etc. c'est parce que tu n'affiches pas les caractères non imprimables. Quand on travaille avec Word, je le répète souvent, il est impératif d'afficher ces caractères, car c'est le seul moyen de savoir ce qu'on fait. Il faut cliquer sur le bouton ¶, onglet Accueil.

Si tu as un problème avec ce tableau, c'est peut-être qu'il a été supprimé par exemple.

m@rina
Messages postés
24
Date d'inscription
mercredi 2 janvier 2013
Statut
Membre
Dernière intervention
17 avril 2018
1
Bonjour,

Je ne vois pas de tableau même en affichant les caractères non imprimables.
J'ai voulu créer directement un nouveau document word, et il ne veut pas sauver mes macros (qui, de plus, ne fonctionnent pas)
Qu'est-ce que je fais mal?
Voici ce que je fais :
Je crée un tableau, j'insère mes check-box dans ce tableau. A la suite (même case du tableau mais à la ligne), je mets un bookmark "vide" que je nomme, puis j'y mets ce que je veux masquer, que j'ajoute dans la liste des auto-entrée (je le nomme du même nom que mon bookmark). Ensuite, j'édite la check-box, je la renomme et vais dans le vba. J'y recopie ton code en adaptant (nom de l'auto-texte, row-ligne du tableau)
Ensuite, j'espère que ça marche, et c'est raté...

Merci
Messages postés
24
Date d'inscription
mercredi 2 janvier 2013
Statut
Membre
Dernière intervention
17 avril 2018
1
Et quand je veux ouvrir le fichier sur lequel j'ai travaillé hier (au départ de ton fichier), il s'ouvre uniquement en tant que doc1.doc, et plus en .dot, dont je ne sais plus l'éditer et rajouter d'autres macros ou modifier celles qui ne fonctionnent pas?!?
Messages postés
16902
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
22 janvier 2021
10 121
Bonjour,

Je pense que tu t'es lancée dans un document compliqué alors que tu ne connais pas beaucoup Word. Je ne peux pas faire des formations entières sur un forum... Aussi je te conseille de commencer par acheter un bon bouquin parce que tu poses beaucoup de questions qui sont à la base de l'utilisation de Word.

Pour ton document, je te propose de télécharger l'exemple que j'ai mis en ligne et dont j'ai donné le lien plus haut.

Pour répondre rapidement à tes problèmes :
- Les checkbox ne se mettent pas dans les tableaux (voir modèle)
- Un modèle crée un nouveau document lorsqu'on double clique dessus, ce qui est le but d'un modèle. Pour l'ouvrir, il faut faire un clic droit => OUvrir, ou bien l'ouvrir depuis l'application.

m@rina
Messages postés
24
Date d'inscription
mercredi 2 janvier 2013
Statut
Membre
Dernière intervention
17 avril 2018
1
Bonjour,

Désolée pour le retard, mais je reviens d'une semaine de congé
J'ai un bouquin (VBA pour les nuls), mais ca ne m'aide pas. Ou je m'y perds ou je ne retrouve pas le lien entre le document word et le code vba
J'avais cherché sur le net aussi et aucun tuto sur le net :-(, d'où le fait que je sois venue sur ce forum
J'espérais que ce soit un tuto simple, mais bon ca semble vraiment complexe :-(
Je vais donc me contenter de modifier le document que tu as fait sur base de mon exemple (je me limiterai à 3 checkbox, c'est peu mais c'est déjà ça)
En tout cas, merci pour ton aide, ça m'aide déjà pas mal
Messages postés
16902
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
22 janvier 2021
10 121
Bonjour,

Quand je parlais de bouquin, je parlais d'un bouquin sur Word, et non pas sur le VBA (même pour les nuls). On ne peut pas s'attaquer au VBA sans connaître déjà bien le logiciel...

m@rina
Messages postés
24
Date d'inscription
mercredi 2 janvier 2013
Statut
Membre
Dernière intervention
17 avril 2018
1
Bonjour,
Oui, je remarque que je découvre plein de fonctionnalités dans word au fur et à mesure que j'avance dans mes templates.
Et grâce au modèle, j'ai pu m'en sortir pour tous :-)
J'ai juste une dernière question : comment faire pour que les autres puissent utiliser mes documents?
Je dois sauver le code dans le template directement et pas dans un template en attachement?
Si je fais ça, ca bugge aussi, mais je suspecte que c'est parce que l'auto texte ne suit pas (vérifié quand je crée une simple sélection d'autotexte). Comment faire pour qu'il se transfère aussi? Pour le moment, je sauve tout dans "général" ou dans le nom de mon fichier template pour les macro.
Merci d'avance
Promis, j'arrête de t'embêter après
Messages postés
16902
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
22 janvier 2021
10 121
Bonsoir,

Pour que d'autres utilisateurs puissent utiliser ce modèle, il faut de préférence que les blocs de construction se trouvent dans le modèle. C'est la raison pour laquelle j'ai fourni un modèle (dotm) et non un simple document (docm). Voir mon explication dans le post 9.

Concernant les macros, c'est un peu pareil. Elles fonctionneront si elles se trouvent dans le modèle.

EN résumé, il faut distribuer ce modèle et rien d'autres, car ce modèle contient les blocs de construction et les macros.

Utilisation d'un modèle : tout d'abord, on le met dans le dossier des modèles.
Ensuite Fichier => Nouveau, on choisit le modèle, et on crée donc un nouveau document à partir de ce modèle.

m@rina
Messages postés
24
Date d'inscription
mercredi 2 janvier 2013
Statut
Membre
Dernière intervention
17 avril 2018
1
Super!
Merci pour tes explications, ça fonctionne!
Je mets ce poste en résolu :-)