Une fois qu'on a touché à Access, qui n'a pas rêvé de faire des SQL sur des plages de cellules ?
C'est maintenant à portée en utilisant DAO (pour ADO se référer au tutoriel de Silkyroad sur les classeurs fermés).
un exemple d'appel de la sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub DoCmdRunSQL(ByVal sql As String, ByVal rDest As Range) Dim db As DAO.Database Dim rs As DAO.Recordset Set db = DAO.OpenDatabase(ActiveWorkbook.FullName, False, False, "Excel 8.0;HDR=YES;") Set rs = db.OpenRecordset(sql, DAO.dbOpenSnapshot) rDest.CopyFromRecordset rs Set rs = Nothing Set db = Nothing End Sub
pour mettre le résultat de la requête en A1 de la feuille Feuil2
Code : Sélectionner tout - Visualiser dans une fenêtre à part DoCmdRunSQL "SELECT * FROM [feuil1$A3:D600] WHERE age > 18", sheets("Résultat").range("A1")
la table s'écrit [nomonglet$plage]
Partager