Microsoft 365 QUERYTABLE.ADD : Collage directement des valeurs dans variable possible ?

AUREL87

XLDnaute Nouveau
Bonjour à tous,

J'utilise beaucoup les requêtes SQL dans mes codes VBA.

Pour les créer, j'utilise un querytable.add sous la forme suivante :

With Thisworkbook.Worksheets("FEUIL").QueryTables.Add (Connection:=
"ODBC;DRIVER=xxx;SERVER=xxx;DATABASE=xxx;UID=yyy;PWD=rrr" _
, Destination: =Thisworkbook.Worksheets("FEUIL").Range("A1"))
.CommandText = RequeteSQL
.SavePassword = False
.Refresh BackgroundQuery:=False
EndWith


Cela fonctionne bien et le résultat est collé sur la feuille définie en "DESTINATION".

Peut-on sauvegarder ces données dans une variable et non les coller sur une feuille ? (C'est très souvent une seule ligne qui est renvoyée).

Merci.
@urel87.
 

Pounet95

XLDnaute Occasionnel
Bonjour,

Peut-être qu'en définissant une variable de type Range ?
dim MaVariable as Range

With Thisworkbook.Worksheets("FEUIL")
QueryTables.Add Connection:="ODBC;DRIVER=xxx;SERVER=xxx;DATABASE=xxx;UID=yyy;PWD=rrr" _
, Destination: =<MaVariable>
.CommandText = RequeteSQL
.SavePassword = False
.Refresh BackgroundQuery:=False
EndWith
 

AUREL87

XLDnaute Nouveau
Bonjour Pounet95,

Une variable RANGE fonctionne bien, et me permet d'être sûr de supprimer les données avant lorsque je boucle mais cela colle quand même les données dans la feuille :

Set Rg = Range("AR1:AT1")
Rg = ""
<reste du code>

La solution que j'ai trouvé, qui est plus propre à mon avis également, est de passer par un RECORDSET (ouverture d'un autre poste).

Bonne journée à tous et merci.
@urel87
 

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 520
dernier inscrit
Azise