Bonjour à tous,
Quelques mots pour me présenter, je suis Anthony, médecin dans une unité de soins palliatifs dans le 13. J'ai hérité au départ de la retraite du "référent informatique" de la gestion de notre gestion documentaire. Nous allons rentrer à la rentrée prochaine en phase de certification (évaluation de notre établissement par l'Agence Régionale de Santé). Pour cette occasion nous souhaitons mettre à jour notre base documentaire.
En pratique, il s'agit d'un document excel constitué de plusieurs pages. Les soignants ouvrent le fichier Excel et peuvent accéder aux différents documents en cliquant, soit sur les rubriques correspondantes, soit en utilisant une barre de recherche.
C'est cette dernière qui me pose problème... Normalement, lorsque je tape un mot clé dans le champ approprié [feuil1] champ O4 et que je valide en cliquant sur le bouton OK (champ Q4), cela affiche sur la feuille "Recherche" feuil3] les diverses caractéristiques de l'ensemble des documents qui contiennent le mot clé tapé (que l'on retrouve en colonne P d'une feuille intitulée Administrateur_saisie [feuil4]). Or, actuellement cela ne fonctionne pas... Je vous avoue ne pas comprendre l'origine de ce dysfonctionnement.
Egalement, la recherche par catégorie (listing dans la feuille "liste déroulante"), l'accès par référent, ainsi que la possibilité de voir tous les documents ne fonctionne pas aussi.
Les codes VBA que je retrouve sont les suivants :
Feuil1 (Accueil) :
Feuil3 (Recherche) :
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144 Private Sub WorkSheet_Change(ByVal Target As Range) Unprotect ("admin") If Not Application.Intersect(Target, Range("O7")) Is Nothing Then Sheets(2).Select Sheets(2).Unprotect ("admin") Sheets(2).Range("$A$2").End(xlDown).AutoFilter Select Case Target.Value Case "Administratif" Call Recherche1 Case "Agent de service" Call Recherche2 Case "B?n?vole" Call Recherche3 Case "Cuisinier" Call Recherche4 Case "Equipe Mobile" Call Recherche5 Case "Factotum" Call Recherche6 Case "H?pital de jour" Call Recherche7 Case "Pharmacienne" Call Recherche8 Case "Soignants (Unit?s)" Call Recherche9 Case "M?decins" Call Recherche10 Case "CLIN & vigilances" Call Recherche11 Case "CME-RD" Call Recherche12 Case "COMEDIM" Call Recherche13 Case "CHSCT" Call Recherche14 Case "DU" Call Recherche15 Case "CRU" Call Recherche16 Case "Qualit?-GQR" Call Recherche17 Case Else Exit Sub End Select Sheets(2).Protect ("admin") End If Protect ("admin") End Sub Sub Recherche1() Unprotect ("admin") Sheets(2).Range("$A$2").End(xlDown).AutoFilter Field:=7, Criteria1:="x" Protect ("admin") End Sub Sub Recherche2() Unprotect ("admin") Sheets(2).Range("$A$2").End(xlDown).AutoFilter Field:=8, Criteria1:="x" Protect ("admin") End Sub Sub Recherche3() Unprotect ("admin") Sheets(2).Range("$A$2").End(xlDown).AutoFilter Field:=9, Criteria1:="x" Protect ("admin") End Sub Sub Recherche4() Unprotect ("admin") Sheets(2).Range("$A$2").End(xlDown).AutoFilter Field:=10, Criteria1:="x" Protect ("admin") End Sub Sub Recherche5() Unprotect ("admin") Sheets(2).Range("$A$2").End(xlDown).AutoFilter Field:=11, Criteria1:="x" Protect ("admin") End Sub Sub Recherche6() Unprotect ("admin") Sheets(2).Range("$A$2").End(xlDown).AutoFilter Field:=12, Criteria1:="x" Protect ("admin") End Sub Sub Recherche7() Unprotect ("admin") Sheets(2).Range("$A$2").End(xlDown).AutoFilter Field:=13, Criteria1:="x" Protect ("admin") End Sub Sub Recherche8() Unprotect ("admin") Sheets(2).Range("$A$2").End(xlDown).AutoFilter Field:=14, Criteria1:="x" Protect ("admin") End Sub Sub Recherche9() Unprotect ("admin") Sheets(2).Range("$A$2").End(xlDown).AutoFilter Field:=15, Criteria1:="x" Protect ("admin") End Sub Sub Recherche10() Unprotect ("admin") Sheets(2).Range("$A$2").End(xlDown).AutoFilter Field:=16, Criteria1:="x" Protect ("admin") End Sub Sub Recherche11() Unprotect ("admin") Sheets(2).Range("$A$2").End(xlDown).AutoFilter Field:=17, Criteria1:="x" Protect ("admin") End Sub Sub Recherche12() Unprotect ("admin") Sheets(2).Range("$A$2").End(xlDown).AutoFilter Field:=18, Criteria1:="x" Protect ("admin") End Sub Sub Recherche13() Unprotect ("admin") Sheets(2).Range("$A$2").End(xlDown).AutoFilter Field:=19, Criteria1:="x" Protect ("admin") End Sub Sub Recherche14() Unprotect ("admin") Sheets(2).Range("$A$2").End(xlDown).AutoFilter Field:=20, Criteria1:="x" Protect ("admin") End Sub Sub Recherche15() Unprotect ("admin") Sheets(2).Range("$A$2").End(xlDown).AutoFilter Field:=21, Criteria1:="x" Protect ("admin") End Sub Sub Recherche16() Unprotect ("admin") Sheets(2).Range("$A$2").End(xlDown).AutoFilter Field:=22, Criteria1:="x" Protect ("admin") End Sub Sub Recherche17() Unprotect ("admin") Sheets(2).Range("$A$2").End(xlDown).AutoFilter Field:=23, Criteria1:="x" Protect ("admin") End Sub
Feuil4 (Administrateur_saisie) :
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 Sub Chemin() 'ne fonctionne PAS Dim Chemin As String Chemin = ThisWorkbook.Path & "\" & "TEST 2.xlsm" MsgBox = Chemin End Sub Sub Motcle() With Worksheets(4).Unprotect("admin") Worksheets(4).Select Worksheets(4).Range("$A$2").End(xlDown).AutoFilter 'ok Dim Crit Crit = Worksheets(1).Range("O4") Worksheets(4).Range("$A$2").End(xlDown).AutoFilter Field:=6, Criteria1:="*" & Crit & "*" 'l? o? s'effectue la recherche, les ?toiles dans les crit?res permettent de dire qu'avant et apr?s ce qui est tap? on ne connait pas les caract?res Worksheets(4).Protect ("admin") End Sub Sub Recherche() 'pas activ?e, ne sait pas si fonctionne Sheets(2).Select Sheets(2).Range("$A$2").End(xlDown).AutoFilter Dim Crit Crit = InputBox("entrez un mot cl? (attention aux accents) ", "RECHERCHE", "taper ici UN mot-cl?") 'box o? l'on entre la recherche Sheets(2).Select Sheets(2).Range("$A$2").End(xlDown).AutoFilter Field:=5, Criteria1:="*" & Crit & "*" 'l? o? s'effectue la recherche : 1?re colonne (field 1) du tableau (range), les ?toiles dans les crit?res permettent de dire qu'avant et apr?s ce qui est tap? on ne connait pas les caract?res End Sub Sub Toutvoir() 'ok Sheets(2).Unprotect ("admin") Sheets(2).Select Sheets(2).Range("$A$2").End(xlDown).AutoFilter 'permet de d?sactiver tous les filtres et donc de tout afficher Sheets(2).Protect ("admin") End Sub Sub Referent() Sheets(3).Select Sheets(3).Unprotect ("admin") Sheets(3).Range("$A$3").End(xlDown).AutoFilter With Sheets(1).Select 'case contenant la recherche: tro = Sheets(1).Range("O13") End With Sheets(3).Select Sheets(3).Range("$A$3").End(xlDown).AutoFilter Field:=9, Criteria1:=tro Sheets(3).Protect ("admin") End Sub Sub FiltreAS() 'n'est pas activ?e ActiveSheet.Range("$B$3").End(xlDown).AutoFilter Field:=7, Criteria1:="x" 'range indique la plage/tableau concern? et field le rang de la colonne o? s'effectue le tri (par rapport au tableau) End Sub
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 Sub Chemin() 'ne fonctionne PAS Dim Chemin As String Chemin = ThisWorkbook.Path & "\" & "TEST 2.xlsm" MsgBox = Chemin End Sub Sub Motcle() With Worksheets(4).Unprotect("admin") Worksheets(4).Select Worksheets(4).Range("$A$2").End(xlDown).AutoFilter 'ok Dim Crit Crit = Worksheets(1).Range("O4") Worksheets(4).Range("$A$2").End(xlDown).AutoFilter Field:=6, Criteria1:="*" & Crit & "*" 'l? o? s'effectue la recherche, les ?toiles dans les crit?res permettent de dire qu'avant et apr?s ce qui est tap? on ne connait pas les caract?res Worksheets(4).Protect ("admin") End Sub Sub Recherche() 'pas activ?e, ne sait pas si fonctionne Sheets(2).Select Sheets(2).Range("$A$2").End(xlDown).AutoFilter Dim Crit Crit = InputBox("entrez un mot cl? (attention aux accents) ", "RECHERCHE", "taper ici UN mot-cl?") 'box o? l'on entre la recherche Sheets(2).Select Sheets(2).Range("$A$2").End(xlDown).AutoFilter Field:=5, Criteria1:="*" & Crit & "*" 'l? o? s'effectue la recherche : 1?re colonne (field 1) du tableau (range), les ?toiles dans les crit?res permettent de dire qu'avant et apr?s ce qui est tap? on ne connait pas les caract?res End Sub Sub Toutvoir() 'ok Sheets(2).Unprotect ("admin") Sheets(2).Select Sheets(2).Range("$A$2").End(xlDown).AutoFilter 'permet de d?sactiver tous les filtres et donc de tout afficher Sheets(2).Protect ("admin") End Sub Sub Referent() Sheets(3).Select Sheets(3).Unprotect ("admin") Sheets(3).Range("$A$3").End(xlDown).AutoFilter With Sheets(1).Select 'case contenant la recherche: tro = Sheets(1).Range("O13") End With Sheets(3).Select Sheets(3).Range("$A$3").End(xlDown).AutoFilter Field:=9, Criteria1:=tro Sheets(3).Protect ("admin") End Sub Sub FiltreAS() 'n'est pas activ?e ActiveSheet.Range("$B$3").End(xlDown).AutoFilter Field:=7, Criteria1:="x" 'range indique la plage/tableau concern? et field le rang de la colonne o? s'effectue le tri (par rapport au tableau) End Sub
Y aurait-il une personne qui puisse me donner un coup de main ?
Je vous remercie.
Anthony
PS: mot de passe de protection : admin
Partager