Bonjour à tous,
J'ai trouvé sur la toile une macro écrite par Heureux-oli. Cette macro correspond bien à mes besoins.
Je souhaite créer un formulaire avec plusieurs listes déroulantes liées 2 par 2. J'ai donc préparé un formulaire de test avec les listes déroulantes 1 avec 2 et 3 avec 4.
Dans la liste 1 j'ai entré les valeurs "1", "2" et "3".
Dans la liste 3 j'ai entré les valeurs "Beetle", "Canon", "Compaq" et "Dell".
Voici donc les macros.
Le problème, c'est que l'exécution est très lente et que la modification de la liste déroulante 2 ne se fait qu'après celle de la 4. Et en plus, il faut s'y prendre plusieurs fois avant que le bon résultat s'affiche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 Sub Test() With ActiveDocument.FormFields(2).DropDown .ListEntries.Clear End With Select Case ActiveDocument.FormFields(1).Result Case "1" With ActiveDocument.FormFields(2).DropDown .ListEntries.Add "1 avec Un" .ListEntries.Add "1 avec deux" .ListEntries.Add "1 avec trois" End With Case "2" With ActiveDocument.FormFields(2).DropDown .ListEntries.Add "2 avec Un" .ListEntries.Add "2 avec deux" .ListEntries.Add "2 avec trois" End With Case "3" With ActiveDocument.FormFields(2).DropDown .ListEntries.Add "3 avec Un" .ListEntries.Add "3 avec deux" .ListEntries.Add "3 avec trois" End With End Select End Sub Sub PwdMarque() With ActiveDocument.FormFields(4).DropDown .ListEntries.Clear End With Select Case ActiveDocument.FormFields(3).Result Case "Beetle" With ActiveDocument.FormFields(4).DropDown .ListEntries.Add "M II" End With Case "Canon" With ActiveDocument.FormFields(4).DropDown .ListEntries.Add "Scanfront 220" End With Case "Compaq" With ActiveDocument.FormFields(4).DropDown .ListEntries.Add "Evo D500" .ListEntries.Add "Evo D510 SFF" .ListEntries.Add "Evo NC6000" .ListEntries.Add "DeskPro" .ListEntries.Add "Workstation" End With Case "Dell" With ActiveDocument.FormFields(4).DropDown .ListEntries.Add "FX 160" .ListEntries.Add "Latitude D420" .ListEntries.Add "Latitude D430" .ListEntries.Add "Latitude D610" .ListEntries.Add "Latitude D620" .ListEntries.Add "Latitude D630" .ListEntries.Add "Latitude E4300" .ListEntries.Add "Latitude E4310" .ListEntries.Add "Latitude E5400" .ListEntries.Add "Latitude E6400" .ListEntries.Add "Latitude E4300" .ListEntries.Add "Latitude E4310" .ListEntries.Add "Latitude E5400" .ListEntries.Add "Latitude E5410" .ListEntries.Add "Latitude E6400" .ListEntries.Add "Latitude E6410" .ListEntries.Add "Optiplex 740" .ListEntries.Add "Optiplex 780" .ListEntries.Add "Workstation" End With End Select End Sub
Est-il possible de multiplier les couples de listes déroulantes autant de fois que besoin dans un formulaire ?
Est-ce qu'il y a une erreur de syntaxe dans les macros ?
Merci pour votre aide.
Cordialement.
Cilor.




Répondre avec citation




. Je n'ai pas tout compris mais j'ai téléchargé la version PDF et je vais étudier cela à tête reposée. Peut-être ( même surement) cela me permettra d'améliorer encore plus mon formulaire 

, ça permet aux autres DVPnautes de savoir qu'il y a une solution (pas toujours avec une issue positive d'ailleurs) à ce fil.
Partager