Bonjour à tous,
J'ai un problème avec une liste déroulante où la saisie semi-automatique a disparue...
Le contenu de cette liste se compose des communes (CODGEO et LIBGEO, order by CODGEO). De plus, afin de ne pas avoir les 36000 communes, j'ai décider de mettre en place un système qui restreint la liste :
-une première liste où on choisit la région
-une 2e liste où le choisi le département (choix restreint selon la région)
-ma liste des communes appartenant au département choisi precedement
Le problème c'est que même en faisant cela, on a toujours beaucoup de choix pour la plupart des départements... Ainsi, il faudrait avoir la saisie semi-automatique pour éviter de devoir user de la molette!
Sauf que pour les 3 listes, la saisie semi-auto n'est plus disponible.
Je joins un screen des listes ainsi que le code VBA qui se trouve derrière les listes :
Merci d'avance!
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
75
76
77
78 '######### Action sur les zones de liste ######### Private Sub lst_region_KeyDown(KeyCode As Integer, Shift As Integer) KeyCode = 0 End Sub Private Sub lst_dep_KeyDown(KeyCode As Integer, Shift As Integer) KeyCode = 0 End Sub Private Sub lst_commune_KeyDown(KeyCode As Integer, Shift As Integer) KeyCode = 0 End Sub Private Sub lst_region_Change() '------------affiche les départements de la région Call initia_tout Me.Refresh Me.lst_dep.Enabled = True Me.lst_dep.Requery 'SELECT REG, REG_libelle FROM T_region ORDER BY REG_libelle Me.lst_dep.SetFocus End Sub Private Sub lst_dep_Change() '------------affiche les communes du département Call rafraichi_lstdep Me.Refresh Me.lst_commune.Enabled = True Me.txt_commune.Enabled = True Me.txt_epci.Visible = True Me.etiquette_EPCI.Visible = True Me.lst_commune.Requery 'SELECT DEP_id, DEP_libelle FROM T_departement WHERE (((DEP_REG_id)=[Forms]![F_EXPORT_EXCEL].[lst_region])); Me.lst_commune.SetFocus End Sub '######## Une fois le departement choisi, on affiche le nom de ce dept (plutot que code commune) ######## Private Sub lst_dep_AfterUpdate() Me.Refresh Me.lst_dep = Me.lst_dep.Column(1) End Sub Private Sub lst_commune_Change() Dim w_r As String '--------- rafraichissement des zones de textes EPCI et Canton ----------- Me.Refresh Call rafraichi_lstcom Me![txt_commune] = Me.lst_commune.Column(1) '-------- nom de l'EPCI --------- w_epci = DLookup("[nom_complet]", "Epcicom2011", "[insee] = '" & [lst_commune] & "'") Me![txt_epci] = w_epci If Me![txt_epci] = "N'appartient à aucun EPCI" Then Me.chk_commune.Visible = True Me.chk_epci.Visible = False Me.chk_region.Visible = True Me.chk_dept.Visible = True Else Me.chk_commune.Visible = True Me.chk_epci.Visible = True Me.chk_region.Visible = True Me.chk_dept.Visible = True End If End Sub
Partager