Chères et chers Développeurs,

A partir d'un csv j'ai construis deux dropdown listes en vbscript/hta. Chaque liste provient d'une colonne du csv. Ce que je souhaite c'est que lorsque je sélectionne une valeur dans la dropdown liste 1 ça autoselecte la valeur correspondante (car sur la même ligne dans le csv) dans la dropdown liste 2. Je ne souhaite pas que la liste 2 affiche uniquement le résultat sélectionné (avec début ou fin de la liste effacé) mais bien la liste ENTIÈRE avec le résultat sélectionné dedans.
Par exemple dans le cas ci dessous si je sélectionne "TOTO Bibi" dans la liste 1 ca m'autoselectionne Projet n°24 dans la liste 2. Et si je ne suis pas d'accord avec cette autoselection j'ai toujours le choix de choisir un des autres Projets de la liste.
Je pensais que ça allait être simple mais je n'y arrive pas du tout.

J'ai pour l'instant le script .hta qui créer les deux dropdownlists:

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
<html>
<head>
<title>Local Users</title>
 
<HTA:APPLICATION 
     ID="objHTAHelpomatic"
     APPLICATIONNAME="LocalUsers"
     SCROLL="yes"
     SINGLEINSTANCE="yes"
     WINDOWSTATE="normal"
>
</head>
 
<SCRIPT Language="VBScript">
'Get the current path
sCurPath = CreateObject("Scripting.FileSystemObject").GetAbsolutePathName(".")
 
    Sub Window_Onload
 
Set Userlist = CreateObject("Scripting.FileSystemObject")
Set Userlistf = Userlist.OpenTextFile(sCurPath & "\List.csv", 1)
Dim arrUsers ()
ReDim arrUsers(7, 0)
Do While Not Userlistf.AtEndOfStream
'les lignes sont splitées par "," en colonne (arrTemp)
arrTemp = Split(Userlistf.ReadLine, ",")
i = 0
'Compte seulement les deux premières colonnes (Nom Prenom)
boolUserFind = False
If arrTemp(1) = arrUsers(0, i) Then boolUserFind = True
If arrTemp(2) = arrUsers(1, i) Then boolUserFind = True 
Do While boolUserFind = False AND i < Ubound(arrUsers, 2)
i = i + 1
If arrTemp(1) = arrUsers(0, i) Then boolUserFind = True
If arrTemp(2) = arrUsers(1, i) Then boolUserFind = True 
Loop
 
Redim Preserve arrUsers (7, Ubound(arrUsers, 2) + 1)
arrUsers(0, Ubound(arrUsers, 2) - 1) = arrTemp(1)
arrUsers(1, Ubound(arrUsers, 2) - 1) = arrTemp(2)
arrUsers(6, Ubound(arrUsers, 2) - 1) = arrTemp(6)
Loop
 
Redim Preserve arrUsers (7, Ubound(arrUsers, 2) - 1)
 
'Pour chaque ligne récupère 1ère, 2ème et 7ème colonne
strTemp = ""
For i = 0 To Ubound(arrUsers, 2)
strTemp = arrUsers(0, i) & " " & arrUsers(1, i) & vbcrlf 
strTemp2 = arrUsers(6, i) & vbcrlf 
 
'Créer les deux dropdownlists
            Set objOption = Document.createElement("OPTION")
            objOption.Text = strTemp
            objOption.Value = strTemp
            LocalUsers.Add(objOption)
 
			Set objOption2 = Document.createElement("OPTION")
			objOption2.Text = strTemp2
            objOption2.Value = strTemp2
			Projects.Add(objOption2)
Next
   End Sub
 
</SCRIPT>
 
<body>
    <select name="LocalUsers">
    </select>
	    <select name="Projects">
    </select>
</body>
</html>

Et voici le contenu du fichier list.csv pour tester le script hta

,TOTO,Bibi,,,,Projet n° 24,,,,,,,,,,
,TATA,Bebe,,,,Projet n° 32,,,,,,,,,,
,TITI,Bobo,,,,Projet n° 03,,,,,,,,,,
,TUTU,Bubu,,,,Projet n° 11,,,,,,,,,,


Merci grandement pour votre aide!

Grundraisin