Étant donné les avantages d'ExcelADO comme décrit here, j'ai décidé d'utiliser Excel ADO pour l'automatisation QTP. Donc, est ici le code que j'ai utilisé -ExcelADO - Utilisation de la plage pour extraire des données à partir d'Excel en utilisant VBScript
'Open the ADO connection to the Excel workbook
Dim oConn
Set oConn = CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=D:\Mine\QTP\Book1.xls;" & _
"Extended Properties=""Excel 8.0;HDR=NO;"""
'Set Record Set Object
Dim oRS
Set oRS = CreateObject("ADODB.Recordset")
'Execute Query
oRS.Open "Select * from qwerty", oConn, adOpenStatic
'Get String
a = oRs.GetString()
Dans la requête mentionnée ci-dessus « azerty » est le nom de la plage de cellules dans Excel. Le morceau de code mentionné ci-dessus fonctionne parfaitement à condition que la plage de cellules fournie soit le nom de deux ou plusieurs cellules. Je trouve qu'il est très utile d'utiliser une plage de cellules nommée au lieu d'utiliser « sheetname » et/ou « rangée et les positions de la colonne »
Maintenant, quand je nomme une seule cellule et l'utilisation ci-dessus pièce d'exception de code puis en suivant est lancé
« moteur de base de données Microsoft Jet n'a pas pu trouver l'objet « azerty » Assurez-vous l'objet existe et que vous épeler son nom et le chemin d'accès correctement
. code: 80040e37
»
Il me semble que les données peuvent être récupérées en utilisant la plage (cellules nommées) uniquement lorsque la plage utilise 2 cellules ou plus. Est-ce correct? Si oui, comment puis-je récupérer des données pour une seule cellule nommée?
~ T
Quelle version d'Excel utilisez-vous? Le mien est excellent 2003. – Tarun