* Bonjour, *

Comme le sujet l'indique, je souhaiterais copier une plage de cellules d'un fichier fermé vers un fichier ouvert sans passer par le fournisseur ADO, car j'ai un code que j'ai testé avec ADO, ca marche très bien mais que sur certains postes, je ne trouv epas l'erreur, quand je lance ma macro sur mon poste, ca marche nickel, mais quand je le lance à partir d'un autre poste (les fichiers sont partagés) il me met erreur '-2147467259, erreur non spécifiée" je n'ai aucune idée de comment résoudre cela, voici le code avec ado :
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
Private Sub CommandButton1_Click()
Dim Source As Object, Requete As Object
Dim Onglet As String, Plage As String, fichier As String
Dim Texte_SQL As String
Dim Source2 As Object, Requete2 As Object
Dim Onglet2 As String, Plage2 As String, fichier2 As String
Dim Texte_SQL2 As String
Dim Source3 As Object, Requete3 As Object
Dim Onglet3 As String, Plage3 As String, fichier3 As String
Dim Texte_SQL3 As String
 
'détermine de la plage à extraire
fichier = "\\Adresse IP\Commun\CONt\2012\Feuille Mars.xls"
Onglet = "pm" '
Plage = "H6:S10000"
 
'connexion ADO
Set Source = CreateObject("ADODB.Connection")
Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"data source=" & fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
 
'exerce la requete ADO sur les donnée à recopier
Texte_SQL = "SELECT * FROM [" & Onglet & "$" & Plage & "]"
Set Requete = CreateObject("ADODB.Recordset")
Set Requete = Source.Execute(Texte_SQL)
 
'restitue sur ton classeur
Sheets("Mois en cours").Range("X6").CopyFromRecordset Requete
 
'libère les pointeurs
Set Requete = Nothing
Set Source = Nothing
 
'détermine de la plage à extraire
fichier2 = "\\IP\Commun\\2012\....xls"
Onglet2 = "p" '
Plage2 = "C610000"
 
'connexion ADO
Set Source2 = CreateObject("ADODB.Connection")
Source2.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"data source=" & fichier2 & ";Extended Properties=""Excel 8.0;HDR=No;"";"
 
'exerce la requete ADO sur les donnée à recopier
Texte_SQL2 = "SELECT * FROM [" & Onglet2 & "$" & Plage2 & "]"
Set Requete2 = CreateObject("ADODB.Recordset")
Set Requete2 = Source2.Execute(Texte_SQL2)
 
'restitue sur ton classeur
Sheets("Mois en cours").Range("D6").CopyFromRecordset Requete2
 
'libère les pointeurs
Set Requete2 = Nothing
Set Source2 = Nothing
 
'détermine de la plage à extraire
fichier3 = "\\Adresse IP du pc\Commun\ Mars.xls"
Onglet3 = "pm" '
Plage3 = "F6:G10000"
 
'connexion ADO
Set Source3 = CreateObject("ADODB.Connection")
Source3.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"data source=" & fichier3 & ";Extended Properties=""Excel 8.0;HDR=No;"";"
 
'exerce la requete ADO sur les donnée à recopier
Texte_SQL3 = "SELECT * FROM [" & Onglet3 & "$" & Plage3 & "]"
Set Requete3 = CreateObject("ADODB.Recordset")
Set Requete3 = Source3.Execute(Texte_SQL3)
 
'restitue sur ton classeur
Sheets("Mois en cours").Range("F6").CopyFromRecordset Requete3
 
'libère les pointeurs
Set Requete3 = Nothing
Set Source3 = Nothing
 
End Sub
* Merci *