Accéder à une cellule Excel sans ouvrir le fichier
cs_nitho
Messages postés130Date d'inscriptionjeudi 16 avril 2009StatutMembreDernière intervention 8 décembre 2015
-
23 nov. 2009 à 17:38
cs_nitho
Messages postés130Date d'inscriptionjeudi 16 avril 2009StatutMembreDernière intervention 8 décembre 2015
-
25 nov. 2009 à 09:57
Bonjour à tous, je cherche à avoir accès à des valeurs de cellules dans un fichier Excel sans l'ouvrir. Voici le code que j'utilise.
-----------------------------------------
'lire la valeur d'une cellule dans un classeur fermé
Sub test()
Dim fich$, feuil$, Cell As Excel.Range
fich = "D:\TestADO.xls"
feuil = "feuil1"
Set Cell = Excel.Range("A1")
MsgBox GetValueWithADO(fich, feuil, Cell)
End Sub
'Note : cette fonction est utilisable dans une feuille de calcul
'Ex :
' =GetValueWithADO("D:\TestADO.xls";"feuil1";A1)
Function GetValueWithADO(Classeur$, Feuille$, Cell As Range)
'renvoie la valeur de la cellule Cell de la feuille Feuille
'du classeur fermé Classeur
Dim RcdSet As Object
Dim strConn As String
Dim strCmd As String
Dim dummyBase As Range
'prépare une "base de données" bidon pour la clause SELECT
'(une entête fictive et une ligne de données)
Set dummyBase = Cell.Resize(2)
'et la renvoie
GetValueWithADO = Application.Clean(RcdSet(0))
'autre syntaxe possible
' GetValueWithADO =Application.Clean(RcdSet.GetString(NumRows:=1))
'nettoyage
Set RcdSet = Nothing
End Function 'fs
----------------------------------------
Une erreur survient au niveau de la ligne Jaune et l'erreur "Type défini par l'utilisateur non défini" survient.
J'ai pourtant activé la bibliothèque Microsoft Office 11 Object Library. S'il y a un moyen de ne pas utiliser cette bibliothèque, c'est encore mieux.
Merci d'avance, je compte sur vous
cs_nitho
Messages postés130Date d'inscriptionjeudi 16 avril 2009StatutMembreDernière intervention 8 décembre 2015 25 nov. 2009 à 09:57
Merci pour ta réaction, je suis vraiment bloqué.
Ce code est à l'origine fait pour marcher sur vba Excel. Je suis en train de vouloir l'adapter. Pour Range j'ai essayé Excel.Range que vb6 devrais normalement reconnaitre. Mais même quand j'active la bibliothèque Microsoft Office 11.0 Object Library, ça ne marche pas pourtant il doit bien avoir un moyen de le faire.
Il y a aussi la méthode CreateObject Mais quand tu écris CreateObject(Excel.application") après pour spécifier le fichier excel on utilise la méthode open.
MonExcel.Workbooks.open("c:\...")
Or je ne veux pas que le fichier soit ouvert. Je ne sais donc pas comment faire