Bonjour,
Je sais que de nombreux posts ont été écrit sur le sujet néanmoins, je viens demander un conseil sur le code que j'ai écrit qui ne fonctionne pas (VBA m'informe que ADODB.Connection n'est pas un type défini".
J'ai crée un userform dans lequel je rentre le nom du fichier et le nom de la feuille dans laquelle se trouvent les données que je souhaite copier sur le fichier dans lequel se trouve la macro.
Voici mon code:
Sub Commandbutton1_click()
'Déclaration variable chemin et nom en texte
Dim Cheminsource As String, Fichiersource As String, Feuillesource As String
Cheminsource = TextBox1.Value
Feuillesource = TextBox2.Value
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 des cellules contenant les données à récupérer
Cellule = "A2:AK39528"
Feuille = " & Feuillesource & $"
'Chemin complet du classeur fermé
Fichier = " & Cheminsource & "
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 & "]")
Worksheets("Copie des resultats").Range("A2:AK39528").CopyFromRecordset Rst
Rst.Close
Source.Close
Set Source = Nothing
Set Rst = Nothing
Set ADOCommand = Nothing
End Sub
Je vous demande votre aide face à cette embuche.
Merci par avance de vos réponses