IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Find dans classeur fermé


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 51
    Par défaut Find dans classeur fermé
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    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
     
        Cellule = (Find(v)("a2:k35"))resize (1,1)
     
        Feuille = "Feuil1$" 'n'oubliez pas d'ajouter $ au nom de la feuille.
        'Chemin complet du classeur fermé
        Fichier = "C:\Users\Moi\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

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Vu le code que tu as déjà fait, tu devrais y arriver très facilement!
    2 pistes :
    Tu utilises une commande SQL "SELECT ...". Tu peux modifier cette commande pour ne sélectionner que ce que tu cherches.
    Sinon tu peux aussi travailler sur le recordset ADO. Je suppose que c'est là que tu as essayé sans succès la méthode Find. Peux-tu montrer ce que tu as fais et dire en quoi cela ne fonctionne pas?

    Cordialement,

    PGZ

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 51
    Par défaut
    Je suis flatté de ta réponse, mais je ne suis pas l'auteur de ce code.
    Je désire copie la valeur cherche et les 2 cellules qui l'approche, pour les coller dans le fichier ou j'execute la macro.
    ci joint le fichier
    Fichiers attachés Fichiers attachés
    • Type de fichier : xls d.xls (22,5 Ko, 99 affichages)

Discussions similaires

  1. macro pour reporter dans classeur fermé
    Par varik dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 29/03/2012, 21h04
  2. [XL-2002] Methode Find ADO classeur fermé
    Par Djo04 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 19/10/2010, 18h53
  3. Actualisé requête dans classeur fermé.
    Par bobinette33 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/07/2010, 19h03
  4. [XL-2002] ListView et données dans Classeur fermé
    Par vaucluseimmo dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/01/2010, 07h59
  5. copier coller dans classeurs fermés
    Par ericdev67 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/10/2009, 23h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo