Bonjour,

Ayant beaucoup naviguer sur developpez.net pour apprendre le VBA, je suis hélas confronté à un problème dont je n'arrive pas cette fois à trouver une solution... je m'explique :
J'utilise un fichier excel qui est connecté en DAO à une base Access. Tout fonctionne impecc, mais...

J'ai dans une feuille Excel 7 champs ayant chacun une liste déroulante puis un bouton macro "Filtre".
1-Date
2-Domaine
3-Secteur
4-Département
5-Site
6-Métier
7-Nature

Comme je l'ai dit, chaque "cellule" possède une liste déroulante avec des valeurs pré-définis
Le but étant de choisir une valeur dans chaque cellule souhaité pour faire un filtre et afficher le résultat de la requête SQL dans un tableau excel.

Actuellement, si la personne renseigne les 7 cellules, une requête qui fonctionne correctement :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 Domaine = Range("B2").Value
 Scteur = Range("B3").Value
 Departement = Range("B4").Value
 Site = Range("B5").Value
 Metier = Range("B6").Value
 Cntrat = Range("B7").Value
 
 Date1 = Range("B1").Value
 Date2 = DateSerial(Year(Date1), Month(Date1), 1)
 
 
 
sSQL = "SELECT * FROM TableA WHERE [Col1]= '" & Domaine & "'AND [Col2]= '" & Scteur & "' AND [Col3]= '" & Departement & "' AND [Col4]= '" & Site & "' AND [Col5]= '" & Metier & "' AND [Col6]= '" & Cntrat & "' AND [Col7] BETWEEN format('" & Date2 & "','dd/mm/yyyy') AND format('" & Date1 & "','dd/mm/yyyy');"
Le problème dans cette requête c'est que je ne prends absolument pas en compte si l'utilisateur renseigne la cellule 1 et 7 et laisse les autres vides... ce qui devrait me sortir le résultat en fonction de la date et de la nature... même process pour toutes les manipulations avec ce "filtre".

J'ai commencé à chercher d'autres solutions mais en vain....
C'est pourquoi je fais mon bapteme sur developpez.net et demande de l'aide car je sèche terriblement.

Toute piste est la bienvenue