Formulaire qui se remplit

Julien -  
 Julien -
Bonjour à tous

je suis entrains de faire une sorte de formulaire avec des champs classiques

nom
prenom
téléphone
adresse mail

pour chaque champs j'ai integré une liste déroulante, par exemple pour nom, j'ai intégré 10 noms, de même pour les autres champs.
JE voudrais savoir à l'image d'excel, si selon le nom selectionné dans la liste, que le téléphone et l'adresse mail se remplissent automatiquement.

Es ce possible sur word ? j'ai cru entendre parlé de macro ?

Merci les amis.



2 réponses

m@rina Messages postés 23885 Date d'inscription   Statut Contributeur Dernière intervention   11 464
 
Bonjour,

Avec une macro, oui, mais c'est possible avec de simples champs IF, du genre :

{IF {NOM}= "toto" "toto@adresse.fr"} {IF {NOM}= "mimi" "mimi@adresse.fr"} etc.

Tu parles de champs "classiques", c'est quoi "classique" : champ de formulaire hérités, Contrôles ActiveX, Contrôles de contenu ?

m@rina
0
Julien
 
bonjour,

quand je parle de champ oui ce sont des "contrôle du contenu de liste déroulante".
Donc quand dans une liste je choisi en NOM "DUPONT", je voudrai que dans la liste prénom que j'aurais remplis, il apparaît "MURIELLE".


Merci
0
m@rina Messages postés 23885 Date d'inscription   Statut Contributeur Dernière intervention   11 464
 
Bonsoir,

Il faut donc une macro. J'explique ici :
https://faqword.com/index.php/word/faq-word/gestion-des-macros/902-a-l-instar-des-champs-de-formulaire-peut-on-declencher-une-macro-a-la-sortie-d-un-controle-de-contenu

Par contre, tu parles de listeS déroulanteS. A partir du moment où tu ne fais qu'un seul choix, celui du nom, les autres contrôles n'ont pas besoin d'être des listes déroulantes. Donc, pour le nom, tu mets une liste déroulante, pour les autres des contrôles de contenu texte. Ta macro sera de ce genre là :

Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
Dim CC_nom As ContentControl, CC_prenom As ContentControl, CC_tel As ContentControl
Set CC_nom = ActiveDocument.ContentControls.Item(1)
Set CC_prenom = ActiveDocument.ContentControls.Item(2)
Set CC_tel = ActiveDocument.ContentControls.Item(3)

If CC_nom.Range = "DUPONT" Then
CC_prenom.Range = "MURIELLE"
CC_prenom.tel = "5555"
End If

If CC_nom.Range = "MARTIN" Then
CC_prenom.Range = "Jean"
CC_prenom.tel = "6666"

End Sub


m@rina

0
Julien
 
super merci, je vais test et je fais un retour :)
0
m@rina Messages postés 23885 Date d'inscription   Statut Contributeur Dernière intervention   11 464
 
Tu auras compris que, suite à un vilain copier-coller, j'ai mis des CC_prenom.tel... Evidemment, il faut comprendre CC_tel.Range ! ;)

If CC_nom.Range = "DUPONT" Then 
CC_prenom.Range = "MURIELLE"
CC_tel.Range = "5555"
End If
0
Julien
 
je reviens vers vous pour une question,

le CC_X

a quoi correspond le X pour le contrôle de contenu ? au titre ou à la balise ?

Merci
0
m@rina Messages postés 23885 Date d'inscription   Statut Contributeur Dernière intervention   11 464
 
A rien du tout! :) c'est un nom de variable que j'ai mis pour s'y retrouver. J'aurais pu tout aussi bien mettre TOTO. Ce qui importe c'est à quoi font référence les variables.
Dans mon exemple, la variable CC_nom.Range fait référence au premier contrôle du document (Item(1).

C'est toujours un peu délicat de faire référence au numéro d'ordre du contrôle (selon les documents) car il suffit de modifier la présentation du texte, d'ajouter ou supprimer des contrôles, et le numéro d'index bouge.
On peut alors faire référence au numéro d'identification du contrôle, et là ça ne bougera plus. Explications ici :
https://faqword.com/index.php/word/faq-word/formulaires-controles/772

m@rina
0
m@rina Messages postés 23885 Date d'inscription   Statut Contributeur Dernière intervention   11 464
 
0