J'ai une connexion qui scrape Web basé sur un lien dynamique. Donc, je ne peux pas établir une connexion fixe. La macro suivante crée la connexion, puis met à jour la feuille de calcul.Supprimer la connexion dans Excel à l'aide de VBA après le scrappage Web
With ThisWorkbook.Worksheets("Data").QueryTables.Add(Connection:= _
"<URL redacted>", Destination:=ThisWorkbook.Worksheets("Data").Range("$A$1"))
.Name = "DataPull"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
.Delete
End With
Cette macro s'exécute toutes les minutes pour mettre à jour les données. Ainsi, cela crée une nouvelle connexion chaque fois qu'il s'exécute. Je ne veux pas que tant de connexions existent car elles ne seront plus utilisées. Comment supprimer la connexion une fois que le raclage Web est terminé? ou Existe-t-il un moyen de configurer une connexion unique qui peut se modifier en fonction d'une variable. La variable est les intervalles de temps qui varient en fonction de l'heure actuelle.
J'ai regardé cette option
For Each qr In ThisWorkbook.Queries
qr.Delete
Next qr
Mais il y a deux autres connexions fixes que je ne veux pas supprimer. Les nouvelles connexions créées portent le nom Connection, Connection1, etc. Est-il possible de supprimer les connexions en fonction du nom?
Avez-vous regardé [Méthode QueryTables.Add (Excel)] (https://msdn.microsoft.com/fr-fr/vba/excel-vba/articles/querytables-add-method-excel) – noas