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 :

Recherche et copier/coller sur une autre feuille


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 48
    Points : 41
    Points
    41
    Par défaut Recherche et copier/coller sur une autre feuille
    Bonjour,

    Voila je débute en VB Excel et j'ai quelques soucis, certains sont déjà résolu via le tatonement. Mais là je bloque complétement.

    Le but de ma macro est de faire une recherche sur ma feuille 3. Sur celle-ci j'ai 2 colonnes qui sont utilisées la A et la B. Sur la A, j'ai des champs dans mes cellules, je dois faire une recherche sur le contenu celles-ci et mon problème est le suivant: j'ai un champ par cellule et certains m'interesse plus que d'autres. j'ai plusieurs cellules dans ma colonne A qui ont le champ n ou n1 ou n2, ou n20, j'ai un unique n et ensuite des n1 ou n2 ou n20 (ils sont toujours uniques). Je n'arrive pas à faire une recherche correcte pour me les envoyer en colonnes sur la feuille 2. J'ai essayer un pattern dessus et le problème est qu'il me retourne un booléen. Le like ne fonctionne pas non plus.
    Que faire? Si quelqu'un avait une idée sur la méthode ou l'opérateur à utiliser cela m'aiderait beaucoup.
    Merci à vous.

  2. #2
    Membre confirmé Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Points : 638
    Points
    638
    Par défaut
    Bonjour,

    Je n'ai vraiment le temps de me plonger dans le codage mais j'ai ce code que j'utilise pour faire une recherche entre deux fichiers, tu peux vérifier s'il est possible de l'adapter à ton cas.
    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
    Sub RechercheDeuxFichiers()
     
        Dim i As Long
        Dim shDans As Worksheet
        Dim shRecherche As Worksheet
        Dim c As Range
        Dim Recherche
     
        Set shDans = Workbooks("Liste # achem 31-01-2009.xls").Worksheets("Liste")
        Set shRecherche = Workbooks("CIBC0412 2008-12.xls").Worksheets("CIBC0412")
        For i = 2 To shRecherche.Range("B65536").End(xlUp).Row
     
            Recherche = shRecherche.Cells(i, 2)
            If Recherche <> "" Then
                With shDans.Range("B:B")
                    Set c = .Find(Recherche, LookIn:=xlValues)
                    If Not c Is Nothing Then
                        shRecherche.Cells(i, 1) = shDans.Cells(c.Row, 3)
                    Else
                        shRecherche.Cells(i, 1) = "pas trouvé"
                    End If
                    Set c = Nothing
                End With
            End If
     
        Next i
    End Sub
    Si tu as des questions n'hésite pas!

  3. #3
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 48
    Points : 41
    Points
    41
    Par défaut
    Ok, je te remercie je vais tester ça et modifier quelques lignes de ton code. Par contre pourrais tu m'expliquer un peu ce code stp. Merci

  4. #4
    Membre confirmé Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Points : 638
    Points
    638
    Par défaut
    Bonjour,

    Voici mon code commenté!
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    Option Explicit
    'J'utilise cette fonction pour faire la recherche d'un fichier à un autre. J'ai un fichier avec
    'Des noms et des identifiants (exemple) et un autre avec des identifiants et des adresses.
    'Avec cette macro, je peux aller chercher les adresses du deusième fichier et les ajouter a droite
    'dans le premier fichier pour avoir nom, identifiant, adresse.
    Sub RechercheDeuxFichiers()
     
        Dim i As Long
        Dim shDans As Worksheet
        Dim shRecherche As Worksheet
        Dim c As Range
        Dim Recherche
     
    'shDans correspond "dans quoi" on fait la recherche.
        Set shDans = Workbooks("Liste # achem 31-01-2009.xls").Worksheets("Liste")
    'shRecherche correspond à la recherche même.
        Set shRecherche = Workbooks("CIBC0412 2008-12.xls").Worksheets("CIBC0412")
    'Une boucle de la ligne 2 (tu peux changer la ligne de départ) à la dernière ligne
    'remplie de la recherche à faire.
        For i = 2 To shRecherche.Range("B65536").End(xlUp).Row
     
    '    Ce que je recherche. Le 2 est pour la colonne recherché (ici mes identifiant de mon premier fichier.
            Recherche = shRecherche.Cells(i, 2)
    '    Facultatif, Si la recherche est vide, passe à la prochaine ligne.
            If Recherche <> "" Then
    '           Si tu ne connais pas le With, va voir l'aide.
    '           Mon range B:B, il fait la recherche dans cette colonne (identifiants du deuxieme fichier).
                With shDans.Range("B:B")
    '            Set c l'emplacement trouvé de la recherche (un Range)
                    Set c = .Find(Recherche, LookIn:=xlValues)
    '            Si c n'est pas rien, alors je prends la ligne de l'emplacement trouvé et
    '           l'utilise pour remplir mon champ dans ma feuille recherche.
    '           Copie et colle l'adresse du deuxième fichier qui correspond à l'identifiant correspondant
    '           au premier fichier dans la colonne 3.
                    If Not c Is Nothing Then
                        shRecherche.Cells(i, 3) = shDans.Cells(c.Row, 2)
    '           si pas trouvé, alors il inscrit.
                    Else
                        shRecherche.Cells(i, 3) = "pas trouvé"
                    End If
    '           renvoie c nothing pour initialiser (pas certain que c'est obligatoire).
                    Set c = Nothing
                End With
            End If
     
        Next i
    End Sub
    N'hésite pas pour poser des questions!

  5. #5
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 48
    Points : 41
    Points
    41
    Par défaut
    Merci pour tes explications, c'est cool, j'y vois plus clair dans le code.
    Je n'ai que quelques modifications à faire et ça devrait être bon.
    Merci pour le temps passer sur le sujet.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-MAC 2011] copier/coller sur une même feuille
    Par jeanteynier dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 09/04/2014, 16h52
  2. Macro copier coller dans une autre feuille
    Par olivverte dans le forum Excel
    Réponses: 23
    Dernier message: 17/12/2013, 15h35
  3. copier/coller sur un autre feuille
    Par huître dans le forum Macros et VBA Excel
    Réponses: 32
    Dernier message: 11/05/2011, 11h10
  4. Copier une image sur une feuille et la coller sur une autre feuille
    Par Hierog dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 17/03/2011, 13h21
  5. Réponses: 8
    Dernier message: 12/08/2009, 12h32

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