Bonjour,
Je vais essayer de m'exprimer le mieux possible, tâche ardue car je n'ai commencé il n'y a qu'une semaine avec le VBA.
Ma situation est la suivante, très simple : j'ai récupéré des données par requête sql dans excel, et cela me fait un joli tableau avec les données demandées.
Jusque là, tout va bien, j'ai utilisé les outils et non pas le code pour cette première étape.
Ensuite, pour prendre des dates en paramètre, j'utilise VBA avec qui je récupère le contenu de deux cellules (où se trouvent mes dates) pour créer ma requête en String et je lance la requête avec ce code :
Et jusque là encore, tout va bien, ça marche parfaitement, je suis même ravie. (J'avais eu du mal à faire fonctionner tout cela).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Sheets("LOG_DEP").Range("B3").ListObject.QueryTable.Connection = sConnL Sheets("LOG_DEP").Range("B3").ListObject.QueryTable.Sql = sSql Sheets("LOG_DEP").Range("B3").ListObject.QueryTable.Refresh BackgroundQuery:=False
Seulement, lorsque ma précédente requête n'a renvoyé aucun résultat (tableau vide à l'exception du nom des champs), mon code ne fonctionne plus au prochain lancement. Voilà ce que j'ai :
Quand je clique sur débogage, cela m’amène sur cette ligne de code :Erreur d'exécution 91 :
Variable objet ou variable de bloc With non définie
Cela me semble compréhensible même si en vérité je ne comprends pas tout.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Sheets("LOG_DEP").Range("B3").ListObject.QueryTable.Connection = sConnL
Seulement...je ne sais pas du tout comment faire pour remédier à cela. J'ai essayé de créer une variable de type QueryTable et de l'affecter quelque part à la cellule, mais comme le fonctionnement ListObject et QueryTable est parfaitement obscur pour moi, j'ai probablement fait n'importe quoi.
Bref, je ne m'en sors pas, et je sens quelque chose m'échappe!
Quelqu'un saurait-il m'aiguiller un peu ?
Merci par avance !
Kaëlig.
Partager