Bonjour,
Avant tout, sachez que j'ai parcouru le forum et notamment le tuto de Silkyroad sur ce problème. Je m'inspire d'ailleurs de ce qu'il y donne pour réaliser ce que je souhaite. Malgré tout, lorsque je lance la macro, une erreur subsiste.
Je suppose qu'un de mes soucis est que j'utilise excel 2010, ce qui n'était pas son cas. Par ailleurs, j'ai quand même cherché des solutions en renommant "excel 12.0" par "Excel 12.0.xml" ou à n'utiliser qu'un fichier en .xls mais ça ne fonctionne pas, l'erreur est toujours au niveau du:
L'erreur est je cite "Erreur 3706 Impossible de trouver le fournisseur. Il est peut être mal installé"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Source.Open "Provider=Microsoft.Jet.OLEDB.12.0;" & _ "Data Source=" & Fichier & ";Extended Properties=""Excel 12.0.Xml;HDR=No;"";"
Je joins mon code en entier.
De fait, je sollicite votre aide pour m'aider à comprendre et je suis certains aussi que cela pourra probablement aider d'autres personnes dans le même cas.
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 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 = "A3:F10" Feuille = "Feuil1$" 'n'oubliez pas d'ajouter $ au nom de la feuille. 'Chemin complet du classeur fermé Fichier = "D:\Documents\Testperipherique.xls" Set Source = New ADODB.Connection Source.Open "Provider=Microsoft.Jet.OLEDB.14.0;" & _ "Data Source=" & Fichier & ";Extended Properties=""Excel 14.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("A3:F10").CopyFromRecordset Rst Rst.Close Source.Close Set Source = Nothing Set Rst = Nothing Set ADOCommand = Nothing End Sub
Merci d'avance pour les conseils que vous m'apporterez.
Bien cordialement,
Vbamateur.
Partager