Rechercher : dans
Par :

Case a cocher sous word

Dernière réponse le 13 nov 2008 à 21:02:47 Sebi82, le 4 nov 2008 à 20:05:39 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Firefox 3.0.3

1

m@rina, le 4 nov 2008 à 20:46:34

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

Répondre à m@rina

2

Sebi82, le 4 nov 2008 à 21:36:13

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 :)

Répondre à Sebi82

3

m@rina, le 4 nov 2008 à 22:19:24
  • +1

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

Répondre à m@rina

4

Sebi82, le 5 nov 2008 à 18:49:20

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 :)

Répondre à Sebi82

5

m@rina, le 5 nov 2008 à 20:57:53
  • +1

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-exem­ples-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

Répondre à m@rina

6

Sebi82, le 5 nov 2008 à 21:29:37

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 :)

Répondre à Sebi82

7

m@rina, le 5 nov 2008 à 23:49:09

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

Répondre à m@rina

8

sebi82, le 6 nov 2008 à 10:14:22

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

Répondre à sebi82

9

m@rina, le 7 nov 2008 à 16:58:53

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

Répondre à m@rina

10

sebi82, le 7 nov 2008 à 23:09:41

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 :)

Répondre à sebi82

11

m@rina, le 8 nov 2008 à 12:50:13

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

Répondre à m@rina

12

sebi82, le 8 nov 2008 à 13:25:17

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 ;)

Répondre à sebi82

13

sebi82, le 9 nov 2008 à 09:22:08

Je t'ai laissé un Mp marina :)

Répondre à sebi82

14

sebi82, le 9 nov 2008 à 13:20:44

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

Répondre à sebi82

15

m@rina, le 11 nov 2008 à 02:40:02

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

Répondre à m@rina

16

 sebi82, le 13 nov 2008 à 21:02:47

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

Répondre à sebi82