Case a cocher sous word

Résolu/Fermé
Sebi82 - 4 nov. 2008 à 20:05
Nepenthes6224 Messages postés 24 Date d'inscription mercredi 2 janvier 2013 Statut Membre Dernière intervention 17 avril 2018 - 24 oct. 2016 à 14:04
Bonjour,

Je cherche à faire un document word pour le boulot qui selon qu'une case soit coché ou non un valeur apparaisse dans un tableau

Plusieurs case si la case1 est coché mettre 1 dans le tableau si case 2 mettre 2 ........

je débute en VBA si quelqu'un pouvais me venir en aide :)


J'ai également une seconde question un peu plus complexe je pense.... toujours en fonction de case à cocher, si la Case "modele1" et coché dans le document une certaine partie du texte est visible est l'autre pas.. je ne sais pas si ceci est réalisable ou pas j'attends vos réponse :)


tous ceci sur word2000

Merci à tous
A voir également:

13 réponses

m@rina Messages postés 20036 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 19 avril 2024 11 269
4 nov. 2008 à 20:46
Bonsoir

Bonsoir,

Je pense que pour la première question, il s'agit de cases d'option, et non pas de cases à cocher.

Voici les macro que tu peux ajouter sur modification de ces cases :

Private Sub OptionButton1_Click()
Dim macellule As Range
Set macellule = ActiveDocument.Tables(1).Rows(1).Cells(1).Range
If OptionButton1.Value = True Then macellule.Text = "bleu"
End Sub


Private Sub OptionButton2_Click()
Dim macellule As Range
Set macellule = ActiveDocument.Tables(1).Rows(1).Cells(1).Range
If OptionButton2.Value = True Then macellule.Text = "rouge"
End Sub


Private Sub OptionButton3_Click()
Dim macellule As Range
Set macellule = ActiveDocument.Tables(1).Rows(1).Cells(1).Range
If OptionButton3.Value = True Then macellule.Text = "vert"
End Sub


Pour ta deuxième question, il s'agit plutôt d'une case à cocher, et c'est même plus simple :

Private Sub CheckBox1_Click()
Dim macellule As Range
Set macellule = ActiveDocument.Tables(2).Rows(1).Cells(1).Range
If CheckBox1.Value = True Then
macellule.Text = "Voici le texte que je veux montrer"
Else: macellule.Text = "voici le texte plus petit"
End If
End Sub


Le plus compliqué avec les macros Word, c'est de placer le texte. La solution tableau est la solution la plus simple.

Dans mon exemple, pour les cases d'option, le texte sera inséré dans la première cellule du premier tableau de ton document, et pour les cases à cocher dans la première cellule du second tableau de ton document.

m@rina
0
Bonsoir,

Merci M@rina pour ta reponse :)

pour la première partie je ne connaissais pas les case option dont tu parle tu les trouve ou?

en mettant des cases à cocher ou des radio bouton ont pourrais aussi tester si =>"la case est coché" =>alors "la case X , Y du tableau Z" prendra telle ou telle valeurs je pense non??

j'ai un bouton dans mon doc word je mettrais donc le bout de code dans l'événement boutonclic



Enfin pour la seconde partie

c'est des fois une page entière du documents qui apparait ou disparait selon qu'une case est coché ou non ces pages comprennent du texte et ou image.

actuellement pour les effacer rapidement pour une mise en page correcte j'ai tout mis dans différent tableau donc s'il existait une solution pour cacher c'est tableau ou ces bout de page ca serait chouette :)

encore merci a toi :)
0
Bonjour Marina, en espérant que tu consulteras ce vieux post.
J'essaie de m'inspirer de tes codes mais je n'arrive pas à les appliquer à mon cas.
Je voudrais que si la case est cochée, il y ait un texte que j'ai inséré dans un tableau (1 ligne 1 colonne) et qui contient un champ à renseigner), soit affiché. Else If on aurait le texte "NEANT" qui apparaîtrait.
Quel code utiliser ? Je suppose que cela n'est possible qu'avec des contrôles et non des champs de formulaires.

Je me suis d'abord dirigée vers l'option de champs, avec une macro attribuée à la case à cocher du type
Public Sub caseAcocher()
If ActiveDocument.FormFields("bruit").Result = True Then
ActiveDocument.Tables(6).Cell(1, 1).Range.Font.Hidden = False
ActiveDocument.FormFields("neant").Range.Font.Hidden = True
Else
ActiveDocument.Tables(6).Cell(1, 1).Range.Font.Hidden = True
ActiveDocument.FormFields("neant").Range.Font.Hidden = False
End If
End Sub

et cette solution fonctionne mais en terme de mise en oage de mon document, elle me laisse un espace entre la mention un de mes titres et la mention Néant. rien de grave en soi mais très heureux.

je souhaitais donc que les textes se "remplacent" selon la coche de la case : soit le super paragraphe avec un champ à saisir, soit le mot Neant

Avec un des codes que tu as fourni sur le checkBox, le "remplacement fonctionne mais cela ne n'inclut pas le signet du champ à saisir

Je ne sais pas si je suis claire.

D'avance merci.
0
m@rina Messages postés 20036 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 19 avril 2024 11 269
5 nov. 2008 à 23:49
Bonsoir,

Dans une insertion auto, tu mets ce que tu veux ! Même 10 pages...

Le code n'est pas caché. Si tu télécharges le fichier, tu as accès au code.
C'est un code exemple très simple, tu peux le modifier à souhait.

En fait, je n'ai pas utilisé les signets. A chaque appui sur la touche OK, la macro reconstruit entièrement le fichier et insère une TM. C'est très rapide.

m@rina
0
sebi82 Messages postés 8 Date d'inscription mardi 4 novembre 2008 Statut Membre Dernière intervention 20 novembre 2008
6 nov. 2008 à 10:14
Bon j'ai testé ca legerement mais je galere....

J'ai pris ton exemple et tout sur la userform

mais peu tu m'expliquer comment faire a partir d'un document type (celui que je veux inserer si la case et coché)

une insertion automatique

dans l'exemple ont reprend des donnée que l'utilisateur a tapé mais moi je lui demande simplement de cocher ou non une case et en focntion de cela le document en question s'insere a la place d'un mot comme dans ton exemple.

ce que je n'arrive pas a faire c'est le si c'est coché remplacer le mot par le contenu du fichier

donc il me faudrais les explication depuis le debut pour faire d'un fichier une insert auto et enfin le bout de code qui remplace le mot par cette insere :)

vraiment merci a toi
0
m@rina Messages postés 20036 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 19 avril 2024 11 269
7 nov. 2008 à 16:58
Bonjour,

Dans l'exemple, on ne reprend pas le texte que l'utilisateur a tapé. Il s'agit de texte type issu d'insertion automatique.

Le problème pour insérer un texte à la place d'un mot est qu'une fois le texte inséré, le signet aura disparu. Et si l'utilisteur veut faire marche arrière, ce ne sera pas possible.

Pour pallier ce problème, il faut que tu ajoutes le nom du signet dans l'insertion automatique.

Si tu reprends mon exemple :
- Crée chaque paragraphe type, et ajoutes-y un signet, puis enregistre le en insertion automatique
- Dans ton modèle, tu mets un mot ou une lettre ou ce que tu veux à l'endroit où doit s'insérer le texte et tu mets le même nom de signet
- Ensuite pour chaque texte à insérer, tu auras une case à cocher avec une macro comme ceci (ici le signet se nomme "T1") :
If Me.CheckBox1.Value = True Then
Selection.GoTo What:=wdGoToBookmark, Name:="T1"
ActiveDocument.AttachedTemplate.AutoTextEntries("chap1").Insert Where:= _
        Selection.Range, RichText:=True

End If


Ce qui signifie que si la case à cocher est cochée (value=true) on insérera l'entrée d'insertion auto "chap1" à la place du signet "T1". Ce signet sera effacé mais régénéré aussitôt puisque l'insertion auto le contient.

m@rina
0
sebi82 Messages postés 8 Date d'inscription mardi 4 novembre 2008 Statut Membre Dernière intervention 20 novembre 2008
7 nov. 2008 à 23:09
Okay pour ce point je devrais avoir compris...

1) peu tu encore me dire comment bien crée une insertion auto?

2) les insertions automatique sont elle enregistrer dans le document même? ou alors ce sont des des autre .doc ou .dot?

3) si je fais voyager mon document type sur d'autre post ca marchera bien? ou faut-il copier d'autre chose en même temps que le doc?

4) la mise en page des insert auto sera t'elle pareil que lorsque je l'aurais enregistré?

si tu passe par strasbourg je te paye un verre de vin chaud au marché de noel :D ca le mérite bien :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
m@rina Messages postés 20036 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 19 avril 2024 11 269
8 nov. 2008 à 12:50
Bonjour sebi82


2) les insertions automatique sont elle enregistrer dans le document même? ou alors ce sont des des autre .doc ou .dot?
Les insertions auto doivent être enregistrées dans le modèle. Une IA ne peut être qu'enregistrée dans un modèle. Il faut l'enregistrer dans le modèle de ce document, et pas dans le normal.dot (voir en dessous).

1) peu tu encore me dire comment bien crée une insertion auto?

- Saisie du texte et sélection
- Menu Insertion, Insertion automatique, Insertion automatique
- Taper le nom de l'insertion
- Regarder dans : choisir le modèle actif et non pas le normal.dot
- Clic sur Ajouter

3) si je fais voyager mon document type sur d'autre post ca marchera bien? ou faut-il copier d'autre chose en même temps que le doc?
Ton document type doit être un modèle (voir ci-dessus). Il contiendra les IA et la macro. Le document final ne contiendra pas la macro.

4) la mise en page des insert auto sera t'elle pareil que lorsque je l'aurais enregistré?
oui, à condition de bien enregistré avec le ou les retours paragraphes. Ne pas oublier aussi les signets.


Et pis, zut pour le verre de vin chaud !!!! Figure-toi que j'ai un AR pour Strasbourg pour ce mois-ci dans ma poche, mais le vin chaud ne sera pas encore là !!! ;)
Et même que mes billets, je vais devoir les jeter, car au final, j'ai un contre-temps qui m'empêche de venir... C'est po juste !! :(
Merci quand même...

m@rina
0
sebi82 Messages postés 8 Date d'inscription mardi 4 novembre 2008 Statut Membre Dernière intervention 20 novembre 2008
8 nov. 2008 à 13:25
ah ben zut alors :( il me semble que le marché de noel ouvre dns 1 voir 2 semaine je crois :) je vais tester tout ceci et j'te tiendrais au courant si j'ai reussi ou non ;) en tous cas merci pour ta patience ;)
0
sebi82 Messages postés 8 Date d'inscription mardi 4 novembre 2008 Statut Membre Dernière intervention 20 novembre 2008
9 nov. 2008 à 09:22
je t'ai laissé un Mp marina :)
0
sebi82 Messages postés 8 Date d'inscription mardi 4 novembre 2008 Statut Membre Dernière intervention 20 novembre 2008
9 nov. 2008 à 13:20
Bon j'ai réussi à faire ce que je voulais ou presquuqe :)

peu tu encore me dire comment appeler la userform lorsqu'on appui sur un bouton ou un lien qui se trouve en fin de document ??

un grand merci a toi encore une fois :D
0
m@rina Messages postés 20036 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 19 avril 2024 11 269
11 nov. 2008 à 02:40
Bonsoir,

Il faut un petit bout de code, car le formulaire ne va pas se charger tout seul ! ;)

Sub formulaire()
Load UserForm1
UserForm1.Show
End Sub

Tu ajoutes sur ta barre d'outils ou dans un menu un bouton lié à cette macro.

m@rina
0
sebi82 Messages postés 8 Date d'inscription mardi 4 novembre 2008 Statut Membre Dernière intervention 20 novembre 2008
13 nov. 2008 à 21:02
Bon ben voila j'ai fini ce que je voulais faire et c'est top :)

encore mille merci et a defaut d'un verre de vin chaud j't'envoi un gros bisoux :D

merci merciiiii
0
Nepenthes6224 Messages postés 24 Date d'inscription mercredi 2 janvier 2013 Statut Membre Dernière intervention 17 avril 2018 5
21 oct. 2016 à 15:11
Bonjour,

Moi aussi, pour le boulot, je cherche à montrer du texte quand la case est activée, mais rien ne marche.
J'ai essayé des copy-paste de tout ce qui est ici, et ca ne va pas. J'ai finalement tenter de "cacher si pas sélectionner", mais ca ne marche pas non plus...
Une idée pour m'aider?

Merci beaucoup

PS : je travaille avec word 2007 en anglais et je découvre pour la 1ère fois les macros :-)

voila sur quoi je travaille :

Private Sub CheckBox1_Click()

End Sub

Private Sub CheckBox2_Click()

End Sub

Private Sub CheckBox3_Click()

End Sub

Private Sub CheckBox4_Click()
If Me.CheckBox1.Value = False Then
Hidden.GoTo What:=wdGoToBookmark, Name:="purif"
Else: Written.GoT0 What:=wdGoToBookmark, Name:="purif"
End If
End Sub

Private Sub CheckBox5_Click()

End Sub

Private Sub CheckBox6_Click()

End Sub

Private Sub CommandButton1_Click()

End Sub
0
m@rina Messages postés 20036 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 19 avril 2024 11 269
21 oct. 2016 à 18:03
Bonjour

Merci d'ouvrir ton propre topic, car ça vient comme un cheveu sur une soupe et on ne comprend pas ce que tu veux faire.

Donc essaie d'être précis dans ce que tu veux faire.

m@rina
0
Nepenthes6224 Messages postés 24 Date d'inscription mercredi 2 janvier 2013 Statut Membre Dernière intervention 17 avril 2018 5
24 oct. 2016 à 14:04
merci, pour ta réflexion. J'ai donc créé une nouvelle discussion...
0
m@rina Messages postés 20036 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 19 avril 2024 11 269
4 nov. 2008 à 22:19
Bonsoir,

La différence entre les cases à cocher et les boutons d'option, c'est que les boutons d'option s'annulent les uns les autres... Donc, cela dépend de ce que tu veux faire.

Pour la question de teste à faire disparaître, il faut 'jouer' avec les signets. Dans la macro, tu diras : si la case est cochée, on insère ce texte (issu par exemple d'une insertion auto) avec un signet. Si on décoche, on supprimer le texte marqué par le signet.

Si tu es débutant en macro, regarde sur mon site, tu trouveras des exemples, dont la création d'une userform.
http://faqword.fr

m@rina
-1
Bon plusieur chose réglé aujour'dhui au boulo :) malheureusement n'ayant pas le net labas je ne peux pas venir sur ce forum...

ton forum est d'ailleurs chouette et j'y ai vite fait trouvé une chose interessante ce matin (INCLUDETEXT)

j'ai testé ca basiquement et ca me convient comme methode....

maintenant question

Si je prends des includes texte pour afficher les bouts de pages selon les options cochées

{ INCLUDETEXT "nomdufichier" Signet }

je voudrais, lorsque je modifie soit une case à cocher soit un bouton option, changer la valeur « nomdefichier » d’un champ INCLUDETEXT
ou alors ajouter un nouveau champ INCLUDETEXT à l’endroit que je veux
If Chkbx_Type1.Value = 1 Then AJOUTER UN NOUVEAU CHAMP A TEL ENDROIT
Else PAS DE CHAMP A AFFICHER

Quel serait le code VB à ajouter dans le clic de mon bouton si je veux que les bonnes pages de texte soit inséré en fonction des options cochées lorsque je clique sur ce dernier ?


encore une fois merci :)
0
m@rina Messages postés 20036 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 19 avril 2024 11 269
5 nov. 2008 à 20:57
Bonsoir,

Je ne sais pas exactement à quoi doit ressembler ton projet, mais ne crois tu pas que ce serait mieux d'utiliser une Userform ?

Regarde l'exemple que j'ai mis sur mon site. Il s'agit de remplir une Userform qui ensuite permet de construire entièrement un fichier en fonction des cases à cocher.
http://faqword.fr/index.php/telechargements/cat_view/65-exemples-maison.html

ça s'appelle "Documents types".
Il faut être enregistré pour le downloader.

Par ailleurs, je ne sais pas si la solution des INCLUDETEXT est une bonne solution, car ça crée un lien et en cas de transmission de fichier à d'autres personnes, les liens peuvent être rompus. Je pense que les insertions auto seraient peut être mieux, c d'ailleurs ce que j'ai utilsié dans le modèle dont je te parle.

m@rina
-1
Oui je pense que c'est beaucoup plus propre de cette maniere effectivement...

Pour etre plus précis je souhaite créer un devis automatique pour faciliter la vie a nos commerciaux...

donc dans la userform je met toute les options possible le commercial coche ce qui convient pour le devis et celui ci est fin prêt a être imprimé et ne nécessite plus de retouche.

au niveau des options comment faire pour insérer un document entier a la place d'un signet si la case est coché...

je ne sais pas comment mettre un doc dans une insertion auto si c'est ca la methode....

Si tu pouvais me transmettre un bout de code test qui lorsqu'on coche une case dans la userform du document DEVIS
copie en lieu et place du signet OPTION1 tout le contenu du fichier OPTION1

j'en demande beaucoup mais tu me rendrais vraiment un grand service :)

je te remercie encore :)
0