Bonjour,
La méthode recordset.find me retourne le message d'erreur 3265;
MOn code est :Impossible de trouver l'objet dans la collection correspondant au nom ou à la référence ordinale demandé.
"owner.client" est le nom de la colonne que je souhaite parcourir et code_fond est un entier "2139" par exemple.
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 '--- Connection --- With cn .Provider = "Microsoft.ACE.OLEDB.12.0" .ConnectionString = "Data Source=" & Fichier & _ ";Extended Properties=""Excel 12.0;HDR=NO;IMEX=1""" .Open End With '----------------- Set My_Recordset_FERME = New ADODB.Recordset texte_SQL = "SELECT * FROM [" & NomFeuille & "$]" Set My_Recordset_FERME = New ADODB.Recordset Set My_Recordset_FERME = cn.Execute(texte_SQL) 'Ecrit le résultat de la requête dans la cellule A1 ThisWorkbook.Sheets(3).Range("A1").CopyFromRecordset My_Recordset_FERME 'My_Recordset_FERME.Open , Cn compt = 1 My_Recordset_FERME.Movefirst Do While Not My_Recordset_FERME.EOF My_Recordset_FERME.Find ("owner.client= '" & code_fond & "' ") '.......
Dans la suite de mon code, j'ai essayé d'autres manipulations sur le nom des entêtes, mais toujours le même message d'erreur
"quantity" étant le nom d'une colonne sur le classeur fermé, avec qui j'ai établit une connexion.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Public Position_Operation_Dic As dictionary Position_Operation_Dic.Add My_Recordset_FERME!compt, My_Recordset_FERME!quantity '
ci-après une vue plus globale sur le code :
merci
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 '--- Connection --- With cn .Provider = "Microsoft.ACE.OLEDB.12.0" .ConnectionString = "Data Source=" & Fichier & _ ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=1""" .Open End With '----------------- Set My_Recordset_FERME = New ADODB.Recordset texte_SQL = "SELECT * FROM [" & NomFeuille & "$]" Set My_Recordset_FERME = New ADODB.Recordset Set My_Recordset_FERME = cn.Execute(texte_SQL) 'Ecrit le résultat de la requête dans la cellule A1 ThisWorkbook.Sheets(3).Range("A1").CopyFromRecordset My_Recordset_FERME compt = 1 My_Recordset_FERME.Movefirst Do While Not My_Recordset_FERME.EOF My_Recordset_FERME.Find ("owner.client= '" & code_fond & "' ") 'My_Recordset_FERME.Find ("Owner.client" = 2139) If My_Recordset_FERME!depo = "2362|000003700000000" Then ' to add depo numbers My_Recordset_FERME.MoveNext Else Position_Operation_Dic.Add My_Recordset_FERME!compt, My_Recordset_FERME!quantity ' think about how to sum Quantity of similar ISIN ISIN_Composition_Fond_Dic.Add compt, My_Recordset_FERME!tradableAsset Nature_Compo_Fond_Dic.Add compt, "Ferme" End If compt = compt + 1 Loop '--- Fermeture connexion --- cn.Close Set cn = Nothing End Function
Partager