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

  1. m@rina Messages postés 27636 Date d'inscription   Statut Modérateur Dernière intervention   11 566
     
    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
    1. 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
  2. m@rina Messages postés 27636 Date d'inscription   Statut Modérateur Dernière intervention   11 566
     
    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
    1. Julien
       
      super merci, je vais test et je fais un retour :)
      0
    2. m@rina Messages postés 27636 Date d'inscription   Statut Modérateur Dernière intervention   11 566
       
      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
    3. 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
    4. m@rina Messages postés 27636 Date d'inscription   Statut Modérateur Dernière intervention   11 566
       
      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