Bonjour à tous!
Besoin d'aide svp !!!!!
Je dois faire une maintenance d'un fichier excel qui utilise cette fameuse fonction GetValueWithADO pour récupérer des données dans des fichiers excels fermés
Après avoir étudié le code, la chaine de requête SELECT
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 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) 'prépare les commandes ADO et SQL strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & Classeur & ";" & _ "Extended Properties=""Excel 8.0;HDR=No;IMEX=1;"";" strCmd = "SELECT * FROM [" & Feuille & "$" & dummyBase.Address(0, 0) & "]" 'crée l'objet Recordset Set RcdSet = CreateObject("ADODB.Recordset") 'va chercher l'info RcdSet.Open strCmd, strConn, 0, 1, 1 'adOpenForwardOnly, adLockReadOnly, adCmdText 'et la renvoie GetValueWithADO = Application.Clean(RcdSet(0)) 'autre syntaxe possible ' GetValueWithADO =Application.Clean(RcdSet.GetString(NumRows:=1)) 'nettoyage Set RcdSet = Nothing End Function
prend l'addresse d'une plage de 2 cellules parce qu'on a affecté
Code : Sélectionner tout - Visualiser dans une fenêtre à part strCmd = "SELECT * FROM [" & Feuille & "$" & dummyBase.Address(0, 0) & "]"
Or moi, je dois récupérer juste une cellule bien défini pour chaque fichier et non une plage parce que j'ai analysé que parfois une cellule non renseigné dans une plage entraîne des falsifications des données.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set dummyBase = Cell.Resize(2)
J'ai déjà essayémais me renvoie une erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part strCmd = "SELECT * FROM [" & Feuille & "$" & Cell.Address(0, 0) & "]"
Je croyais que c'était une erreur de syntaxe, alors j'ai modifié en
mais me renvoie encore une erreur du genre "le moteur de la base de données ne peut pas trouver 'Formulaire!Q12' (feuille nommée Formulaire et Cellule à récupérer = Q12)
Code : Sélectionner tout - Visualiser dans une fenêtre à part strCmd = "SELECT * FROM [" & Feuille & "!" & Cell.Address(0, 0) & "]"
Je vous demande alors si c'est possible de récupérer une seule cellule en donnant son addresse via la chaine strCmd si oui, pourriez-vous svp m'aider à trouver le bon syntaxe ou existe-t-il d'autres façons pour récupérer via ADO la valeur d'une cellule d'un fichier fermé!!
Merci dejà pour vos réponses![]()
Partager