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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

guigui76

XLDnaute Occasionnel
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.
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
 
Re : FInd & ADODB

Bonjour,

Il y a pleins de possibilités mais sans information supplémentaire, notament sur la structure de la feuilles Source des données, difficile de te répondre sans tomber à côté.

Mais je vois déjà un truc incohérent dans la macro:
Code:
 Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic
                  
    Set Rst = Source.Execute("[" & Feuille & Cellule & "]")

ces deux instructions font la même chose. La base est intérrogée deux fois.

A+
 
Re : FInd & ADODB

Désolé, pour le manque d'information
Le fichier source est constitué De d2>ak 2 de date.
Find est la pour recherche la date désiré et les lignes inferieurs qui ont des valeurs.
Le tous est copié dans le fichier d'activation de la macro.
Comme j'ai beaucoup d'ouverture de fichier ceci est long, c'est pourquoi je voulais faire la copie sans ouvrir les fichiers.
Voici les exemples d avec la macro et s avec les date et les valeurs
 

Pièces jointes

  • d.xls
    d.xls
    25 KB · Affichages: 64
  • s.xls
    s.xls
    13.5 KB · Affichages: 67
  • d.xls
    d.xls
    25 KB · Affichages: 66
  • s.xls
    s.xls
    13.5 KB · Affichages: 70
  • d.xls
    d.xls
    25 KB · Affichages: 69
  • s.xls
    s.xls
    13.5 KB · Affichages: 69
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
408
Réponses
2
Affichages
333
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
372
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
1
Affichages
265
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…