Classe QueryTable (Excel VBA)

La classe QueryTable représente un tableau de feuille de calcul créé à partir de données renvoyées à partir d’une source de données externe, telle qu’une base de données Microsoft Access ou SQL Server.

Les procédures principales de la classe QueryTable sont Delete et QueryTables.Add

Set

Pour utiliser une variable de classe QueryTable, elle doit d'abord être instanciée, par exemple

Dim qrytbl as QueryTable
Set qrytbl = ActiveCell.QueryTable

Les procédures suivantes peuvent être utilisés pour définir des variables de la classe QueryTable : ListObject.QueryTable, QueryTables.Item, QueryTables.Add, Range.QueryTable et Worksheet.QueryTables

For Each

Voici un exemple de traitement des éléments QueryTable dans une collection

Dim qrytbl As QueryTable
For Each qrytbl In Application.QueryTables
	
Next qrytbl

Thèmes

Certaines procédures de cette classe ont été regroupées en thèmes et sont décrites sur des pages thématiques séparées

Enable with its procedures EnableEditing et EnableRefresh
Row with its procedures FetchedRowOverflow, RowNumbers et TextFileStartRow
Column with its procedures PreserveColumnInfo et TextFileColumnDataTypes
Web with its procedures WebConsecutiveDelimitersAsOne, WebDisableDateRecognition, WebDisableRedirections, WebFormatting, WebPreFormattedTextToColumns, WebSelectionType et WebTables

Méthodes

Les méthodes principales de la classe QueryTable sont

Delete - Cette méthode supprime l'objet.

ActiveCell.QueryTable.Delete

QueryTables.Add - Crée une table de requêtes.

Dim strConnection As String: strConnection = 
Dim qrytbl As QueryTable
Set qrytbl = ActiveSheet.QueryTables.Add(Connection:=strConnection, Destination:=)

Autre Méthodes

CancelRefresh - Cette méthode supprime toutes les requêtes d'arrière-plan de la table de requête spécifiée. Utilisez la propriété refreshing pour déterminer si une requête d’arrière-plan est en cours d’utilisation.

Refresh - Met à jour une plage de données externe dans un objet QueryTable .

ResetTimer - Réinitialise le minuteur d’actualisation pour la table de requête spécifiée ou le rapport de tableau croisé dynamique au dernier intervalle que vous avez défini à l’aide de la propriété RefreshPeriod .

SaveAsODC - Enregistre la source du cache QueryTable en tant que fichier de connexion de données Microsoft Office.

QueryTables.Item - Cette méthode renvoie un seul objet d'une collection.

Propriétés

AdjustColumnWidth Cette propriété a la valeur True si la largeur des colonnes est automatiquement modifiée pour obtenir un ajustement optimal chaque fois qu'une table de requête spécifiée est actualisée. Elle a la valeur False si la largeur des colonnes n'est pas automatiquement ajustée à chaque actualisation. La valeur par défaut est True. Boolean (en lecture/écriture).

ActiveCell.QueryTable.AdjustColumnWidth = True

BackgroundQuery Cette propriété a la valeur True si les requêtes destinées à la table de requêtes sont exécutées de manière asynchrone (en arrière-plan). Boolean (en lecture/écriture).

ActiveCell.QueryTable.BackgroundQuery = True

CommandText Renvoie ou définit la chaîne de commande de la source de données spécifiée. Variant en lecture/écriture.

ActiveCell.QueryTable.CommandText =

CommandType Cette propriété renvoie ou définit l’une des constantes XlCmdType suivantes: xlCmdCube, xlCmdDefault, xlCmdSqlou xlCmdTable. La constante qui est renvoyée ou définie décrit la valeur de la propriété CommandText . La valeur par défaut est xlCmdSQL. Énumération XlCmdType en lecture-écriture.

ActiveCell.QueryTable.CommandType = xlCmdCube

Connection Cette propriété renvoie ou définit une chaîne qui contient l’un des éléments suivants:.

ActiveCell.QueryTable.Connection =

Destination Renvoie la cellule située dans le coin supérieur gauche de la plage de destination de la table de requête (plage où sera placée la table de requête résultante). La plage de destination doit être située sur la feuille de calcul qui contient l'objet QueryTable. En lecture seule Range.

Dim rngDestination As Range
Set rngDestination = ActiveCell.QueryTable.Destination

EditWebPage Cette propriété renvoie ou définit l’URL (Uniform Resource Locator) de page Web pour une requête sur le Web. Variant en lecture/écriture.

ActiveCell.QueryTable.EditWebPage = "C:\MyHomepage.htm"

FieldNames Cette propriété a la valeur True si le nom des champs de la source de données apparaissent en en-tête de colonnes des données renvoyées. La valeur par défaut est True. Boolean (en lecture/écriture).

ActiveCell.QueryTable.FieldNames = True

FillAdjacentFormulas Cette propriété a la valeur True si les formules situées à droite de la table de requête spécifiée sont automatiquement mises à jour à chaque mise à jour de la table. Boolean (en lecture/écriture).

ActiveCell.QueryTable.FillAdjacentFormulas = True

ListObject Cette propriété renvoie un objet ListObject pour l’objet QueryTable . Objet ListObject en lecture seule.

Dim lstobjListObject As ListObject
Set lstobjListObject = ActiveCell.QueryTable.ListObject

MaintainConnection Cette propriété a la valeur True si la connexion à la source de données spécifiée est conservée après l’actualisation et jusqu’à la fermeture du classeur. La valeur par défaut est True. Boolean (en lecture/écriture).

ActiveCell.QueryTable.MaintainConnection = True

Name Cette propriété renvoie ou définit une valeur de type String qui représente le nom de l'objet.

ActiveCell.QueryTable.Name =

Parameters Renvoie une collection Parameters qui représente les paramètres de la table de requête. En lecture seule.

Dim prmsParameters As Parameters
Set prmsParameters = ActiveCell.QueryTable.Parameters

Parent Renvoie l’objet parent pour l’objet spécifié. En lecture seule.

Dim objParent As Object
Set objParent = ActiveCell.QueryTable.Parent

PostText Cette propriété renvoie ou définit la chaîne utilisée avec la méthode post pour l’entrée de données dans un serveur Web pour renvoyer des données à partir d’une requête sur le Web. String en lecture/écriture.

ActiveCell.QueryTable.PostText =

PreserveFormatting Cette propriété a la valeur True si une mise en forme commune aux cinq premières lignes de données est appliquée aux nouvelles lignes de données de la table de requête. Les cellules inutilisées ne sont pas mises en forme. La propriété a la valeur False si la dernière mise en forme automatique, appliquée à la table de requête, est appliquée aux nouvelles lignes de données. La valeur par défaut est True.

ActiveCell.QueryTable.PreserveFormatting = True

QueryType Indique le type de requête utilisée par Microsoft Excel pour remplir le tableau de requête. En lecture seule XlQueryType.

Dim xqtQueryType As XlQueryType
xqtQueryType = ActiveCell.QueryTable.QueryType

Recordset

ActiveCell.QueryTable.Recordset =

Refreshing True si une requête d’arrière-plan est en cours dans la table de requête spécifiée. Boolean (en lecture seule).

Dim booRefreshing As Boolean
booRefreshing = ActiveCell.QueryTable.Refreshing

RefreshOnFileOpen Cette propriété a la valeur True si la table de requête ou le cache du tableau croisé est automatiquement mis à jour à chaque ouverture du classeur. La valeur par défaut est False. Boolean (en lecture/écriture).

ActiveCell.QueryTable.RefreshOnFileOpen = True

RefreshPeriod Renvoie ou définit le nombre de minutes entre deux actualisations. Long (en lecture/écriture).

ActiveCell.QueryTable.RefreshPeriod =

RefreshStyle Renvoie ou définit la manière dont les lignes de la feuille de calcul spécifiée sont ajoutées ou supprimées pour recevoir le nombre de lignes contenues dans un jeu d’enregistrements renvoyé par une requête. En lecture/écriture XlCellInsertionMode.

ActiveCell.QueryTable.RefreshStyle = xlInsertDeleteCells

ResultRange Renvoie un objet Range qui représente la zone de la feuille de calcul occupée par la table de requête spécifiée. En lecture seule.

Dim rngResultRange As Range
Set rngResultRange = ActiveCell.QueryTable.ResultRange

RobustConnect Cette propriété renvoie ou définit le mode de connexion de la table de requête à sa source de données. En lecture/écriture XlRobustConnect.

ActiveCell.QueryTable.RobustConnect = xlAlways

SaveData Cette propriété a la valeur True si les données du rapport de tableau croisé dynamique sont enregistrées avec le classeur. Elle a la valeur False si seule la définition du rapport est enregistrée. Boolean (en lecture/écriture).

ActiveCell.QueryTable.SaveData = True

SavePassword True si le mot de passe d’une chaîne de connexion ODBC est enregistré avec la requête spécifiée. False si le mot de passe est supprimé. Boolean (en lecture/écriture).

ActiveCell.QueryTable.SavePassword = True

Sort Cette propriété renvoie les critères de tri de la plage de la table de requête. En lecture seule.

Dim srtSort As Sort
Set srtSort = ActiveCell.QueryTable.Sort

SourceConnectionFile Cette propriété renvoie ou définit un objet de type String désignant le fichier ODC (Microsoft Office Data Connection) ou un fichier similaire qui a été utilisé pour créer le QueryTable. Lecture-écriture.

ActiveCell.QueryTable.SourceConnectionFile =

SourceDataFile Cette propriété renvoie ou définit une valeur de type String qui indique le fichier de données sources pour une table de requête.

ActiveCell.QueryTable.SourceDataFile =

TextFileCommaDelimiter True si la virgule est le séparateur lorsque vous importez un fichier texte dans une table de requête. False si vous souhaitez utiliser un autre caractère comme délimiteur. La valeur par défaut est False. Boolean (en lecture/écriture).

ActiveCell.QueryTable.TextFileCommaDelimiter = True

TextFileConsecutiveDelimiter Cette propriété a la valeur True si les séparateurs consécutifs sont interprétés comme un séparateur unique lorsque vous importez un fichier texte dans une table de requête. La valeur par défaut est False. Boolean (en lecture/écriture).

ActiveCell.QueryTable.TextFileConsecutiveDelimiter = True

TextFileDecimalSeparator Cette propriété renvoie ou définit le caractère séparateur décimal utilisé par Microsoft Excel lorsque vous importez un fichier texte dans une table de requête. La valeur par défaut correspond au caractère séparateur décimal du système. String en lecture/écriture.

ActiveCell.QueryTable.TextFileDecimalSeparator = ","

TextFileFixedColumnWidths Cette propriété renvoie ou définit un tableau d’entiers correspondant aux largeurs des colonnes (en caractères) dans le fichier texte que vous importez dans une table de requête. Les largeurs valides sont comprises entre 1 et 32 767 caractères. Variant en lecture/écriture.

ActiveCell.QueryTable.TextFileFixedColumnWidths = Array(5, 4)

TextFileOtherDelimiter Cette propriété renvoie ou définit le caractère utilisé en tant que séparateur lors de l'importation d'un fichier texte dans une table de requête. La valeur par défaut est null. String en lecture/écriture.

ActiveCell.QueryTable.TextFileOtherDelimiter =

TextFileParseType Cette propriété renvoie ou définit le format de colonne pour les données du fichier texte que vous importez dans une table de requête. En lecture/écriture XlTextParsingType.

ActiveCell.QueryTable.TextFileParseType = xlDelimited

TextFilePlatform Cette propriété renvoie ou définit l’origine du fichier texte que vous importez dans la table de requête. Détermine aussi quelle page de codes est utilisée pendant cette importation. En lecture/écriture XlPlatform.

################

TextFilePromptOnRefresh Cette propriété a la valeur True si vous voulez spécifier le nom du fichier texte importé à chaque actualisation de la table de requête. La boîte de dialogue Importer Fichier Texte vous permet de spécifier le chemin d'accès et le nom du fichier. La valeur par défaut est False. Boolean (en lecture/écriture).

ActiveCell.QueryTable.TextFilePromptOnRefresh = True

TextFileSemicolonDelimiter True si le point-virgule est le caractère séparateur lorsque vous importez un fichier texte dans une table de requête et si la propriété TextFileParseType a la valeur xlDelimited. La valeur par défaut est False. Boolean (en lecture/écriture).

ActiveCell.QueryTable.TextFileSemicolonDelimiter = True

TextFileSpaceDelimiter Cette propriété a la valeur True si le caractère d'espacement constitue le caractère séparateur lors de l'importation d'un fichier texte dans une table de requête. La valeur par défaut est False. Boolean (en lecture/écriture).

ActiveCell.QueryTable.TextFileSpaceDelimiter = True

TextFileTabDelimiter Cette propriété a la valeur True si le caractère de tabulation constitue le caractère séparateur lors de l'importation d'un fichier texte dans une table de requête. La valeur par défaut est False. Boolean (en lecture/écriture).

ActiveCell.QueryTable.TextFileTabDelimiter = True

TextFileTextQualifier Renvoie ou définit l'identificateur de texte lorsque vous importez un fichier texte dans une table de requête. Cet identificateur indique que les données qu'il encadre sont au format texte. En lecture/écriture XlTextQualifier.

ActiveCell.QueryTable.TextFileTextQualifier = xlTextQualifierDoubleQuote

TextFileThousandsSeparator Cette propriété renvoie ou définit le caractère de séparation des milliers utilisé par Microsoft Excel lorsque vous importez un fichier texte dans une table de requête. La valeur par défaut est le caractère séparateur des milliers du système. String en lecture/écriture.

ActiveCell.QueryTable.TextFileThousandsSeparator =  "."

TextFileTrailingMinusNumbers True pour que Microsoft Excel traite les nombres importés en tant que - texte commençant par un signe (moins) comme un symbole négatif. False pour qu’Excel traite les nombres importés en tant - que texte commençant par un symbole en tant que texte. Boolean (en lecture/écriture).

ActiveCell.QueryTable.TextFileTrailingMinusNumbers = True

TextFileVisualLayout Cette propriété renvoie ou définit une énumération XlTextVisualLayoutType qui indique si la disposition visuelle du texte importé est de gauche à droite ou de droite à gauche.

ActiveCell.QueryTable.TextFileVisualLayout = xlTextVisualLTR

WebSingleBlockTextImport True si les données des balises HTML

 sur la page Web spécifiée sont traitées en une seule fois lorsque vous importez la page dans une table de requête. False si les données sont importées dans des blocs de lignes contiguës de sorte que les lignes d’en-tête soient reconnues comme telles. La valeur par défaut est False. Boolean (en lecture/écriture).

ActiveCell.QueryTable.WebSingleBlockTextImport = True

WorkbookConnection Renvoie l’objet WorkbookConnection que la table de requête utilise. En lecture seule.

Dim wbconWorkbookConnection As WorkbookConnection
Set wbconWorkbookConnection = ActiveCell.QueryTable.WorkbookConnection

QueryTables.Count Cette propriété renvoie une valeur de type Long qui représente le nombre d’objets de la collection.

Dim lngCount As Long
lngCount = ActiveSheet.QueryTables.Count

QueryTables.Parent Renvoie l’objet parent pour l’objet spécifié. En lecture seule.

Dim objParent As Object
Set objParent = ActiveSheet.QueryTables.Parent