Bonjour tout le monde !!
j'ai une question à propos de la possibilité de l'utilisation des requêtes SQL sous MS EXCEL ?
J'ai des tableaux disperser sur plusieurs feuilles (selon leurs secteur d’activités)
et je voudrais créer un menu de recherche à base de VBA afin de simplifier le processus de recherche
le UserForm est illustré comme suite :

|--------------------------------|
| VILLE     |_____________|      |
|                                |
| QUARTIER  |_____________|      |
|                                |
| ACTIVITE  |_____________|      |
|                                |
|                 Rechercher     |
|--------------------------------|
les champs du classeur sont organisé comme ci-dessous :

        A               B
_ |_____________|____________________
1 |REF		| i1
2 |Ville	| XXXX
3 |QUARTIER	| YYYYY
4 |ACTIVITE	| INFORMATIQUE 
5 |	
6 |Entreprise	| ZZZZZ
7 |Decideur	|
8 |Poste	|  	
9 |Adresse	| XY EEEEEEEEEE
10|TEL		| 00 00 00 00 00
11|FAX		|
12|Mobile	|	
13|Email 	|	
14|Web		| www.site.com
15|AUTRE	| 	
16|
17|REF		| i2
18|Ville	|......
...
......etc


J'ai essayé le code suivant mais ça n'a pas marché, vu que mes données sont inséré horizontalement

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
Option Explicit
 
Dim Ws As Worksheet
Dim NbLignes As Integer
 
 
'Les données sont dans les colonnes A à D, d'un onglet nommé "Base".
'La procédure effectue un remplissage conditionnel des Combobox en fonction de
'ce qui est sélectionnée dans le contrôle précédent:
'La sélection du ComboBox1 (données colonne A) définit le contenu du ComboBox2 (données colonne B) ,
'La sélection du ComboBox2 définit le contenu du ComboBox3 (données colonne C) …etc...
'
 
Private Sub UserForm_Initialize()
    'Définit la feuille contenant les données
    Set Ws = Worksheets("Base")
    'Définit le nombre de lignes dans la colonne A
    NbLignes = CStr(Ws.Range("A65536").End(xlUp).Row)
 
    'Remplissage du ComboBox1
    Alim_Combo 1
 
End Sub
 
Private Sub ComboBox1_Change()
    'Remplissage Combo2
    Alim_Combo 2, ComboBox1.Value
End Sub
 
 
Private Sub ComboBox2_Change()
    'Remplissage Combo3
    Alim_Combo 3, ComboBox2.Value
End Sub
 
 
'Procédure pour alimenter les ComboBox
Private Sub Alim_Combo(CbxIndex As Integer, Optional Cible As Variant)
    Dim j As Integer
    Dim Obj As Control
 
    'Définit le ComboBox à remplir
    Set Obj = Me.Controls("ComboBox" & CbxIndex)
    'Supprime les anciennes données
    Obj.Clear
 
    'alimente le Combobox initial (Combobox1)
    If CbxIndex = 1 Then
        'Boucle sur les lignes de la colonne A (à partir de la 2eme ligne)
        For j = 2 To NbLignes
            Obj = CStr(Ws.Range("A" & j))
            'Remplit le ComboBox sans doublons
            If Obj.ListIndex = -1 Then Obj.AddItem CStr(Ws.Range("A" & j))
        Next j
    Else
        'Alimentation conditionnelle des autres Combobox en fonction de
        'ce qui est sélectionnée dans le contrôle précédent:
        '(La sélection du ComboBox1 définit le contenu du ComboBox2,
        'La sélection du ComboBox2 définit le contenu du ComboBox3 …etc...)
        For j = 2 To NbLignes
            If Ws.Range("A" & j).Offset(0, CbxIndex - 2) = CStr(Cible) Then
                Obj = CStr(Ws.Range("A" & j).Offset(0, CbxIndex - 1))
                If Obj.ListIndex = -1 Then Obj.AddItem CStr(Ws.Range("A" & j).Offset(0, CbxIndex - 1))
            End If
        Next j
   End If
 
   'Enlève la sélection dans le ComboBox
   Obj.ListIndex = -1
End Sub
Ma Question : est ce que je pourrais me servir de langage SQL pour sélectionner les données que je voulus récupérer

Bonne Journée à vous tous !