Bonjour,
J'essaye actuellement de lire une plage de cellule dans un fichier Excel fermé.
J'ai trouvé un bon tuto sur ce site http://silkyroad.developpez.com/VBA/ClasseursFermes/
J'ai essayé d'adapter ce programme :
Sur Excel 2007 j'ai du changer Excel8.0 par Excel12.0
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 Sub extractionValeurCelluleClasseurFerme() Dim Source As ADODB.Connection Dim Rst As ADODB.Recordset Dim ADOCommand As ADODB.Command Dim Fichier As String, Cellule As String, Feuille As String 'Adresse de la cellule contenant la donnée à récupérer Cellule = "B4:B4" 'Pour une plage de cellules, utilisez: 'Cellule = "A4:C10" Feuille = "Feuil1$" 'n'oubliez pas d'ajouter $ au nom de la feuille. 'Chemin complet du classeur fermé Fichier = "C:\Base.xls" Set Source = New ADODB.Connection Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";" Set ADOCommand = New ADODB.Command With ADOCommand .ActiveConnection = Source .CommandText = "SELECT * FROM [" & Feuille & Cellule & "]" End With Set Rst = New ADODB.Recordset Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic Set Rst = Source.Execute("[" & Feuille & Cellule & "]") Range("A2").CopyFromRecordset Rst Rst.Close Source.Close Set Source = Nothing Set Rst = Nothing Set ADOCommand = Nothing End Sub
Cela fonctionne jusqu'à la ligne 31 Range("A2").CopyFromRecordset Rst.
là il me renvoie l'erreur suivante :
Erreur d'exécution '502090'
Erreur définie par l'application ou par l'objet
Je n'arrive pas à la corriger.
Quelqu'un peut il m'aider?
Merci d'avance
Partager