IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Word Discussion :

Besoin d'aide pour Synchronisation de listes déroulantes VBA Word


Sujet :

VBA Word

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Ingénieur avant-vente
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur avant-vente
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Besoin d'aide pour Synchronisation de listes déroulantes VBA Word
    Bonjour,

    J'ai bien tenté de trouver réponse à ma question en naviguant à travers le forum et en faisant des recherches, ce fut en vain. J'ai également lu les tutoriels de Heureux-oli et je n'y ai pas trouvé réponse.

    Je dois créer un formulaire avec une liste déroulante de 8 choix. Je dois associer d'autres choix AUTOMATIQUEMENT au premier choix de ma liste déroulante. Je vous mets en exemple (fichier joint) le fichier word de mon travail.

    En gros, je voudrais que les changements se fassent automatiquement. Là, les changements sont lents et je dois cliquer plusieurs fois sur la liste déroulante pour que les changements se fassent. Peut-être que ma stratégie de macro n'est pas bonne. En gros, j'ai 7 champs qui doivent être modifiés selon mon choix initial (premier champ).

    Merci infiniment de votre aide, je suis désespérée. J'ai fouillé tous les forums de discussion!

    Merci!
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut KawineBacon,

    Le principe de mise à jour est OK mais tu dois effectuer les mises à jour de toutes tes listes à chaque sélection. Voilà le code pour la 1ere
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub SynchroAdoucisseur()
        With ActiveDocument
            .FormFields("Diamètre").DropDown.Value = .FormFields("Adoucisseur").DropDown.Value
            .FormFields("Hauteur").DropDown.Value = .FormFields("Adoucisseur").DropDown.Value
            .FormFields("Volume").DropDown.Value = .FormFields("Adoucisseur").DropDown.Value
            .FormFields("Capacité").DropDown.Value = .FormFields("Adoucisseur").DropDown.Value
            .FormFields("Contrôle").DropDown.Value = .FormFields("Adoucisseur").DropDown.Value
            .FormFields("Débit").DropDown.Value = .FormFields("Adoucisseur").DropDown.Value
            .FormFields("Contrôleur").DropDown.Value = .FormFields("Adoucisseur").DropDown.Value
            .FormFields("Contrôle2").DropDown.Value = .FormFields("Adoucisseur").DropDown.Value
            .FormFields("Adoucisseur2").DropDown.Value = .FormFields("Adoucisseur").DropDown.Value
        End With
    End Sub
    Cette macro est suffisante, si tu veux piloter toutes tes listes sur le 1er choix : celui du modèle. Mais si tu veux que chaque liste mette à jour toutes les autres, tu dois le faire le code précédent sur chaque liste (comme tu avais commencé).
    Avec cette technique (simple mais limitée), les mises à jour ne s'effectuent pas lors d'un changement de valeur dans la liste mais uniquement lorsque tu quittes la liste puisque tu as mis ta macro "à la sortie" (<=> lorsque tu perds le focus) c'est-à-dire lorsque tu cliques sur une autre liste pas lorsque tu mets à jour ta liste. Mais il existe d'autres techniques que celle-ci.

    Si cela correspond à ton besoin, on peut optimiser pour n'avoir qu'une seule macro pour toutes listes.

    @+

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Ingénieur avant-vente
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur avant-vente
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour Sepia,

    Tout d'abord merci de t'être donné la peine de répondre. J'apprécie grandement.

    Ce que je veux, c'est que tous les champs (liste déroulante) (Diamètre, Hauteur, Volume, Capacité, Contrôle, Dévit, Contrôleur, Contrôle 2, Adoucisseur 2) s'actualisent automatiquement lorsque je change l'entrée de la première liste déroulante, soit Adoucisseur. J'ai associé mes choix de listes déroulantes pour que la valeur 1 soit OK avec la 1 de toutes les listes, la 2 avec la 2...etc.

    Mon seul problème est l'actualisation automatique dès que je change de type d'adoucisseur au départ...

    Donc, je ne suis pas certaine de saisir la macro que tu as créée. Dois-je copier ceci 8 fois?

    Merci pour ton aide encore une fois,

    Karine

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    Ingénieur avant-vente
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur avant-vente
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Rebonjour,

    J'ai intégré ta macro à mon fichier. Je le remet en fichier joint. Je ne comprends pas pourquoi les mises à jour ne se font pas automatiquement dans mes listes déroulantes. Il doit y avoir un truc que je maîtrise pas.

    Parfois elles se font, parfois non. J'espère être claire dans ce que je veux.

    Exemple : Je veux que lorsque je choisis le 2e item de la 1ere liste déroulante Adoucisseur (F028-D9000E), cela choisisse les 2e items de chacune des 9 listes subséquentes (203 mm (8''), 1118 mm (44''), 1, 22 000, électronique, à microprocesseur avec affichage digital, 5 gallons US/min (19L/min), électronique, F028-D9000E).

    Est-ce seulement un bug de programmation ou est-ce que je peux faire un ajout pour que le tout se fasse dès que je sélectionne un item de ma première liste?

    Merci encore une fois de votre aide! C'est très apprécié. Je suis débutante en VBA et je dois intégrer plusieurs de ces types de programme pour mon travail.

    Karine
    Fichiers attachés Fichiers attachés

  5. #5
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Je pense que dans ton développement, tu as été trop rapide et négligé les choix.

    Tu as besoin d'une macro pour chaque liste qui va générer un changment.

    Et il faut créer les listes pour les choix si tu souhaites modifier le contenu des listes.
    Si c'est simplement pour mettre des zone de texte à jour, tu dois au moins travailler avec des conditions.

    Par exemple

    Si le premier choix de la liste est la seconde entrée alors
    ma zone de texte 1 aura comme valeur aaa
    ma zone de texte 2 aura comme valeur bbb
    ...
    fin de si

    en code ça devrait ressembler à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If ActiveDocument.FormFields(1).Result Then
     ActiveDocument.FormFields(2).Result = "13 " & Chr(34) & " /(30 cm)"
    ...
    End If
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

Discussions similaires

  1. Liste déroulante VBA WORD
    Par flo57570 dans le forum VBA Word
    Réponses: 18
    Dernier message: 25/11/2014, 12h56
  2. [AC-2007] Besoin d'aide APS CGO - Problème liste déroulante
    Par isa13 dans le forum IHM
    Réponses: 7
    Dernier message: 27/01/2014, 22h18
  3. Réponses: 11
    Dernier message: 13/05/2013, 16h59
  4. [XL-2010] Besoin d'aide pour supprimer des lignes en VBA
    Par SimKmil dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/05/2013, 08h46
  5. Aide pour tableau planning/liste déroulante
    Par lexi92 dans le forum Excel
    Réponses: 6
    Dernier message: 11/01/2010, 11h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo