Bonjour,
J'ai réussi à adapter un code pour rapatrier une cellule définie dans une feuille définie en laissant le fichier source fermé.
J'aimerais qu'après avoir collé en D4 la valeur trouvée dans le fichier dont le chemin se trouve en cellule F4 de la feuille janvier du fichier fermé (cellule K26), la macro aille voir dans le fichier dont le chemin se trouve en F5 la cellule K26 et la colle en D5 et ainsi de suite jusqu'à ce que la macro tombe sur une cellule vide en colonne A.
En d'autres termes j'aimerais automatiser :
Path = Sheets("Janvier").Range("F4") -> Path = Sheets("Janvier").Range("F5")
ET
Range("D4").CopyFromRecordset Requete -> Range("D5").CopyFromRecordset Requete
Pouvez-vous m'aider s'il vous plaît.
Sub EXTRAIRE()
Dim Source As Object, Requete As Object
Dim Onglet As String, Plage As String, fichier As String
Dim Texte_SQL As String
'détermination de la plage à extraire
Path = Sheets("Janvier").Range("F4")
fichier = Path
Onglet = "Janvier" '
Plage = ("K26:K26")
Set Source = CreateObject("ADODB.Connection")
Source.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"data source=" & fichier & ";Extended Properties=""Excel 12.0 Xml;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("Janvier").Activate
Range("D4").CopyFromRecordset Requete
'libère les pointeurs
Set Requete = Nothing
Set Source = Nothing
End Sub