Bonjour,
Aprés plusieur recherche j'ai trouvé le moyen de faire une copie d'une plage de cellule sans ouvrir le fichier source.
Mais comment puis-je faire pour faire une recherche sur une plage de cellule pour copié et coller dans le fichier destination.
Voici la macro qui fonctionne pour la copie d'une plage.
J'ai testé avec Find mais rien n'y fait.
Merci de votre patient.
Aprés plusieur recherche j'ai trouvé le moyen de faire une copie d'une plage de cellule sans ouvrir le fichier source.
Mais comment puis-je faire pour faire une recherche sur une plage de cellule pour copié et coller dans le fichier destination.
Voici la macro qui fonctionne pour la copie d'une plage.
J'ai testé avec Find mais rien n'y fait.
Merci de votre patient.
Code:
Sub extractionValeurCelluleClasseurFerme()
Dim v As String
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
v = Range("a1").Value 'valeur recherche dans fichier source
[COLOR="Red"] Range("a2:k35").Find (v)[/COLOR]
Feuille = "Feuil1$" 'n'oubliez pas d'ajouter $ au nom de la feuille.
'Chemin complet du classeur fermé
Fichier = "C:\Users\Nath\Desktop\s.xls"
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 & "]")
Range("A2").CopyFromRecordset Rst
Rst.Close
Source.Close
Set Source = Nothing
Set Rst = Nothing
Set ADOCommand = Nothing
End Sub