Formulaire Word

Résolu
bidule2409 Messages postés 23 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 28 février 2015 - 30 juin 2005 à 15:47
Doro81079 Messages postés 380 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 24 février 2015 - 5 juil. 2005 à 14:53
Bonjour à tous, j'ai un petit soucis avec mon formulaire que je viens de créer sous Word.
Je m'explique :
avec la barre d'outils "Formulaire", j'ai insérer une liste déroulante.
Dans les paramètres de champ, je lui est donné le nom "choix_nom".
A la sortie, j'exécute la macro appelée "newmacro".
J'ai ensuite inséré un signet que j'ai nommé "im" qui devrait envoyer du texte lorsque l'utilisateur choisi un nom dans la liste.
Ma macro est la suivante :
Sub newmacro()
ThisDocument.Activate
If ActiveDocument.Bookmarks("choix_nom") = "eric" Then
ActiveDocument.Bookmarks("im").Select
Selection.InsertAfter ("informatique")
End If
End Sub
Mais, évidemment, rien ne se passe.
Quelqu'un pourrait m'aider, please.
D'avance je vous remercie.

11 réponses

Doro81079 Messages postés 380 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 24 février 2015 56
4 juil. 2005 à 22:30
Bonsoir,

habituellement je fais du vb6 donc je ne suis pas une pro en vba,ni en vb6 d'ailleurs,mais la facon d'ont certains t'ont répondu m'a fait me pencher sur ton probleme.

Je n'est pas la solution complète mais je crois avoir le code pour renseigner un signet(ah oui je ne connais pas grand chose dans les procédures évènementielles mais je sais ce qu'est un signet!!(ScSami)et moi aussi plus je ne me sert pas de l'aide vb je préfère avoir a faire a des gens comme moi ).Je ne sais pas renseigner les propriétés d'une combobox mais comme tu fais du vba tu devrais pouvoir ensuite te débrouiller,alors:

tout d'abord clique sur Affichage=>Barre d'outils=>Boîtes à outils controls

ensuite place sur la feuille une zone de liste déroulante,

pour les propriétés je te laisse faire,puis le signet et tape le code suivant:

private sub combobox1_change()
If ComboBox1.Value = "Doro" Then
'"Doro" est la valeur sélectionner dans la combo
ThisDocument.Bookmarks("nom du signet").Range.Text = "Salut"
'si valeur =doro alors signet = salut
Else
ThisDocument.Bookmarks("doro").Range.Text = "Bonjour"
sinon signet =bonjour
End If

voilà a toi de l'arranger mais pour ca pas besoin de maccro ,ah au fait je suis sur word 2002 alors j'espère que ca fonctionnera tiens moi au courant

et pour ce qui n'ont pas la patience de comprendre le prob des autres ben qu'il ne réponde pas et soit dit en passant j'ai postais 1 fois et la personne qui m'a aidait ne s'est pas enerver malgré mes tonnes de messages(jpleroisse)donc merci a ce qui prenne plaisir à aider les gens comme moi qui n'ont pas de connaissances particulières en la matière
bonne prog à tous
3
cs_wape Messages postés 262 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 19 décembre 2010 11
30 juin 2005 à 20:31
Bonjour,

Essaye éventuellement ceci :

Sub newmacro()
ThisDocument.Activate
If ActiveDocument.FormFields("choix_nom").Result = "eric" Then
ActiveDocument.Bookmarks("im").Select
Selection.InsertAfter ("informatique")
End If
End Sub

wape
0
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
30 juin 2005 à 20:40
Bien sûr que rien ne se passe!!! Comprends-tu le concept de "programmation évenementielle" ???

Lorsque l'utilisateur choisira un nom dans la liste ça déclanchera une
procédure évenementielle (afin de traiter tout ce qui doit l'être
lorsqu'il se passe ça!). Cette procédure doit porter un nom du style :

Private Sub choix_nom_Change(...)

Le mieux n'est pas de l'écrire toi même mais de laisser l'IDE du VBA
(le logiciel, si tu préfères!) le faire à ta place. Pour ce faire, dans
la fenêtre de code, en haut, il y a deux listes déroulantes. Dans celle
de gauche il faut choisir "choix_nom" et après, dans celle de droite,
la procédure événementielle à écrire automatiquement (note qu'il la met
un peu où il veut... ou, du moins, jamais là où on voudrait qu'elle
soit écrite ).



Une fois la procédure évenementielle déclarée, il suffit de mettre ton
code dedans !!! Autrement dit, tout le code de la procédure (simple)
"newmacro" doit aller dans l'autre et donc, "newmacro", étant désormait
vide, doit disparaître!



Fait le test et tien moi informé ok.



Enjoy

<hr size="2" width="100%">
(Si une réponse vous convient, cliquez sur son bouton "Accepter")
0
bidule2409 Messages postés 23 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 28 février 2015
1 juil. 2005 à 09:11
Je connais les procédures évènementielles, le problème est que dans la première liste déroulante, il n'y a inscrit que "(Général)" et "Document".
Je n'ai aucune trace de "choix_nom", c'est pourquoi j'ai tentais de le passer comme macro.
J'ai quand même essayer d'inscrire manuellement la procédure "Private Sub choix_nom_change()", mais rien ne se passe.
0

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

Posez votre question
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
1 juil. 2005 à 18:51
Si tu ne l'as pas, c'est bien simple, c'est que tu n'es pas au bon endroit !!!

Es-tu bien sûr de ne pas être dans un module ???

De plus, il faut mettre "choix_nom_Change()" si tu veux que ça
fonctionne... mais c'est qu'un détail! S'il n'est pas listé, c'est
qu'il n'exista pas là où tu te trouves. Donc, soit tu te trouve au
mauvais endroit... A moin que... j'ai pas très bien compris ce que tu
appelais un "signet"... donc, a moins que ta listebox soit DANS ce
"signet" (!!!)...



Perso, j'ai fait le test chez moi et y'a pas de soucis!



De plus, dit moi, quelle est la version de Excel (et donc, du VBA) que
tu utilises ??? (précise-le toujours dans tes posts STP. Ca évite de
perdre du temps!!!)

Enjoy

<hr size="2" width="100%">
(Si une réponse vous convient, cliquez sur son bouton "Accepter")
0
bidule2409 Messages postés 23 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 28 février 2015
4 juil. 2005 à 10:29
J'ai dû mal m'expliquer !!!!! Désolé !
En fait, j'ai ouvert un page Word, puis dans la barre de menu Formulaire, j'y ai inséré une liste déroulante.
Dans les options de champs de cette liste, j'ai mis dans les paramètres du champs : choix_nom dans la zone signet.
Puis, à exécuter la macro, j'ai mis : à la sortie : newmacro.
Maintenant, quand l'utilisateur choisit un nom dans cette liste, je souhaite que certaines informations s'inscrivent automatiquement dans le document selon le nom choisi.
Je bosse sous Word 97.
0
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
4 juil. 2005 à 19:20
"En fait, j'ai ouvert un page Word, puis dans la barre
de menu Formulaire, j'y ai inséré une liste déroulante." Tu veux dire
que tu as insérer une liste déroulante dans la barre de menu
"Formulaire" !!!! Non, franchement, tu n'es vraiment pas clair dans tes
propos!!!




Je ne comprends toujours pas vraiment où se trouve ton problème!!! Je
me demande d'ailleurs si tu as déjà ouvert l'aide du VB !?!?!? Parce
que, si j'ai bien compris, tu ne sais pas à quoi sert la propriété
".List" !!!



Non, franchement, on ne peut pas t'aider si t'essay pas d'être plus
clair et plus conci !!! Regarde par exemple la taille de tes message
par rapport à la taille des notres!!! J'ai vraiment l'impression de
perdre mon temps!!!



Enjoy
0
Doro81079 Messages postés 380 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 24 février 2015 56
4 juil. 2005 à 22:32
ThisDocument.Bookmarks("doro").Range.Text = "Bonjour"
sinon signet =bonjour

petite erreur c'est pas ("doro") mais ("nom du signet")
0
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
5 juil. 2005 à 01:49
Excuse moi mais là, franchement, ce n'est pas de la
patience qu'il faut, mais des cellules divinatoires!!! Et il est de mon
devoir de le faire remarquer! Et sache que je suis aussi patient que
JpLeR et que je prends grand plaisir à aider ceux qui le méritent !!!
J'entends par là, ceux qui déjà, prennent le temps d'exprimer
clairement leur problème et de deux, n'ont pas la flemme d'ouvrir leur
fichier d'aide fait pour ça pour au moins essayer de chercher une
solution tout seul (ce qui est le meilleur professeur soit dit en
passant!!!) au lieu de se reposer entièrement sur le dos des autres!!!
Et j'espère que tu peux comprendre qu'a la longue ça agace fortement!!!
Les mecs veulent tout sans rien donner, eh bien non, ça ne fonctionne
pas comme ça l'entraide!!! C'est d'abord basé sur la bonne volonté
avant d'être basé sur le "bon vouloir" !!!



Bref, je m'excuse d'avoir répondu à cette question formulée de manière
incompréhensible tout en n'ayant, forcément, pas pu lui apporter une
solution...

Dites... vous m'pardonnez ???



Enjoy

<hr size="2" width="100%">
(Si une réponse vous convient, cliquez sur le bouton "Réponse accéptée"...)
0
bidule2409 Messages postés 23 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 28 février 2015
5 juil. 2005 à 08:53
Merci beaucoup doro81079.
Grâce à toi, je viens de finir mon document.
Tu m'as été d'une grande aide !!!!!!
Merci.
0
Doro81079 Messages postés 380 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 24 février 2015 56
5 juil. 2005 à 14:53
de rien ca sert a ca les forums et scsami bien sur qu'on te pardonne bien que j'ai vu cette nuit que tu avais poster d'autres messages dans ce style mais bon
aller salut
0
Rejoignez-nous