Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/03/2011, 21h25   #1
Invité de passage
 
Femme
Ingénieur avant-vente
Inscription : 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 : 0
Points : 0
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
Type de fichier : doc Exemple devis technique.doc (69,0 Ko, 13 affichages)
kawinebacon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2011, 02h03   #2
Rédacteur/Modérateur
 
Avatar de Sepia
 
Homme JF Jousseaume
Inscription : octobre 2007
Messages : 2 390
Détails du profil
Informations personnelles :
Nom : Homme JF Jousseaume
Âge : 48
Localisation : France

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 2 390
Points : 3 377
Points : 3 377
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 :
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.

@+
Sepia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2011, 02h37   #3
Invité de passage
 
Femme
Ingénieur avant-vente
Inscription : 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 : 0
Points : 0
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
kawinebacon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2011, 14h18   #4
Invité de passage
 
Femme
Ingénieur avant-vente
Inscription : 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 : 0
Points : 0
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
Type de fichier : doc Exemple devis technique 2.doc (69,5 Ko, 10 affichages)
kawinebacon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 20h05   #5
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 321
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 321
Points : 29 220
Points : 29 220
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 :
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h52.


 
 
 
 
Partenaires

Hébergement Web