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
| Dim expt As ListObject, data As QueryTable
Set data = ActiveSheet.ListObjects.Add(SourceType:=0, _
source:=Array(Array("ODBC;DSN=Excel Files;" _
& "DBQ=C:\Users\emowpya\Desktop\Mon dossier\Noyau.xlsb;" _
& "DefaultDir=C:\Users\emowpya\Desktop\Mon dossier"), _
Array(" dossier;" _
& "DriverId=1046;" _
& "MaxBufferSize=2048;" _
& "PageTimeout=5;")), _
Destination:=Range("$B$3")).QueryTable
'la commande suivante définit certains champs de la table en ignorant d'autres
'définit les critères, et l'ordre de tri
With data
.CommandText = Array( _
"SELECT Table_Reference.`Nom public`, Table_Reference.Titre, Table_Reference.Prenom, Table_Reference.Nom, Table_Reference.Téléphone, Table_Reference.Statut" _
& Chr(13) & "" & Chr(10) & "FROM Table_Reference Table_Reference" & Chr(13) & "" & Chr(10) _
& "WHERE ", "(Table_Reference.Prenom='Paul') AND (Table_Reference.Nom<>'Dupont')" & Chr(13) & "" & Chr(10) _
& "ORDER BY Table_Reference.Prenom, Table_Reference.Nom")
'.AdjustColumnWidth = False
'.FillAdjacentFormulas = True ' propriété très utile qui me permet d'actualiser les formules à droite de l'objet
'.MaintainConnection = False
.Refresh
.Refresh BackgroundQuery:=False
.Delete 'supprime la connection
End With
Set expt = ActiveSheet.ListObjects(1)
expt.Unlink
expt.TableStyle = ""
expt.Unlist 'transforme la liste en plage ordinaire |
Partager