Formulaire Word

Résolu
Signaler
Messages postés
23
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
28 février 2015
-
Messages postés
380
Date d'inscription
vendredi 22 avril 2005
Statut
Membre
Dernière intervention
24 février 2015
-
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

Messages postés
380
Date d'inscription
vendredi 22 avril 2005
Statut
Membre
Dernière intervention
24 février 2015
56
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
Messages postés
262
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
19 décembre 2010
11
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
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
24
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
Messages postés
23
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
28 février 2015

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
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
24
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
Messages postés
23
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
28 février 2015

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
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
24
"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
Messages postés
380
Date d'inscription
vendredi 22 avril 2005
Statut
Membre
Dernière intervention
24 février 2015
56
ThisDocument.Bookmarks("doro").Range.Text = "Bonjour"
sinon signet =bonjour

petite erreur c'est pas ("doro") mais ("nom du signet")
0
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
24
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
Messages postés
23
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
28 février 2015

Merci beaucoup doro81079.
Grâce à toi, je viens de finir mon document.
Tu m'as été d'une grande aide !!!!!!
Merci.
0
Messages postés
380
Date d'inscription
vendredi 22 avril 2005
Statut
Membre
Dernière intervention
24 février 2015
56
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