Salut Steelson,
Rien à cacher, m'sieur le douanier , j'en fait largement état dans mes articles sur Excel et les bases de données => http://tatiak.canalblog.com/archives/excel_base_de_donnees/index.html
Sinon, en effet le principal langage utilisé pour les requêtes c'est du SQL, et l'avantage c'est qu'on peut aussi s'interfacer avec des bases MySql, SqlServer, Oracle, Access, ou autre ...!
Le Vba accepte presque toutes les commandes Sql via ADO (il y a quelques limites toutefois).
Compliqué, pas forcemment, parfois même plus simple que d'utiliser les formules de liaison quand la requête est un peu sophistiquée.
Voici un exemple de requête d'une de mes appli croisant les données de 3 onglets différents :
Req = "SELECT MAX(V.Date_visite), M.Freq, R.Responsable, M.Id, M.Denomination, " & _
" M.Reference, M.Emplacement, M.Batiment, M.Etage, M.Info1 " & _
" FROM ([" & Materiel & "$] AS M " & _
" LEFT JOIN [" & Verif & "$] AS V On M.Id=V.Id)" & _
" LEFT JOIN [" & Responsables & "$] AS R On R.Id_Resp=M.Id_Resp" & _
" WHERE (dateadd('m',12/M.freq, V.Date_visite)<=" & CLng(Date) & _
" OR V.Date_visite>=" & derJ & _
" OR ISNULL(V.Date_visite)) " & _
" AND M.Id_Resp=" & Filtre & _
" GROUP BY M.Freq, R.Responsable, M.Id, M.Denomination, M.Reference, M.Emplacement, " & _
" M.Batiment, M.Etage, M.Info1 " & _
" ORDER BY MAX(V.Date_visite) ASC, M.Denomination ASC"
Le tout conforme à la norme Sql => https://sql.sh/
Ca peut sembler compliqué, mais écrire ça en VBA sans Sql, c'est encore plus coton!!
Le Sql dans Excel, c'est bon, mangez-en!
Pierre