Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

copier cellules d'un fichier fermé sans ADO

jasol

XLDnaute Nouveau
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:
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 = "C6:D10000"
  
'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
[CODE]

Quelqu'un aurait il une idée de comment je peux résoudre mon problème ou comment je peux copier mes cellules sans passer par ADO? je desespère là... :(
 

tototiti2008

XLDnaute Barbatruc
Re : copier cellules d'un fichier fermé sans ADO

Bonjour jasol,

Peut-être vérifier la version de MDAC sur les postes ? Ce lien n'existe plus
Sinon pas trop d'idée, ton numéro d'erreur ne renvoit rien sur Google
 

jasol

XLDnaute Nouveau
Re : copier cellules d'un fichier fermé sans ADO

Rebonjour, j'ai vérifié et les fichiers sont les memes sur mon pc et sur celui sur lequel le code ne marche pas, je ne vois vraiment pas d'où peut venir l'erreur!

En tout cas merci à toi tototiti, j'ai lu pas mal de tes posts en plus, tu gères!! merci de partager tes connaissances ici!
 

Discussions similaires

Réponses
2
Affichages
125
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…