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

VBA Discussion :

Code VBA afin de croiser deux fichiers excel avec un SI et un rechercher V


Sujet :

VBA

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Code VBA afin de croiser deux fichiers excel avec un SI et un rechercher V
    Bonjour à tous,

    Je souhaiterai un peu d'aide; j'ai créé une macro enregistrée à partir de la formule si et "recherchev".
    Malheureusement celle-ci ne s'adapte pas à tous les cas que je peux rencontrer. En effet, le contenu de la colonne que je souhaite comparer à ma matrice peut-être d'une fois à l'autre totalement différent. Je peux avoir une fois 5 cellules avec des informations et une autre fois 10 cellules, etc.
    De même, la matrice qui est également sur une colonne peut avoir un contenu d'une fois à l'autre totalement différent.

    le code je souhaiterai, est le suivant :
    Exemple :
    Ce code effectuerai un si et la "recherchev" , comparer les articles de deux feuilles (Patri et Principal) jusqu'à la dernière cellule non vide. C'est à dire j'effectue une recherche "des articles" (dans la colonne C du fichier Patri) dans les articles (du fichier Principal colonne C). si l'article cherché n'est pas ce dernier (la colonne B du fichier Principal ), il le rajoute dans la dernière ligne vide des "articles" dans la colonne B du fichier Principal.

    En formule : Si ([C1: Cn (dernière colonne non vide)!Patri] < > RECHERCHEV ([C1: Cn (dernière colonne non vide)!Patri]; [B1: Bn (dernière colonne non vide)!Principal];2; Faux); [C1: Cn (dernière colonne non vide)!Patri; SINON ("IL FAIT RIEN"))

    C'est pourquoi, je souhaiterai pouvoir remplacer le code générer par la macro enregistrée par un petit code VBA qui s’adapterait automatiquement au contenu de la colonne comparée et au contenu de la Matrice.
    Je vous remercie par avance pour votre aide.

    Cordialement.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 54
    Points : 57
    Points
    57
    Par défaut
    Dis moi si c'est ça que tu cherche à faire. Si tu as des questions sur le code n'hésite pas a demander.


    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
    48
    49
    50
    51
    52
    53
    Option Explicit
     
    Sub RechercheV()
     
    Dim wb As Workbook
    Dim wsPrincipal As Worksheet, wsPatri As Worksheet
    Dim Lastrow As Long, Lastrow2 As Long
    Dim i As Integer, j As Integer
    Dim Found As Boolean
     
    Set wb = ThisWorkbook
    Set wsPrincipal = wb.Sheets("Principal")
    Set wsPatri = wb.Sheets("Patri")
     
    Lastrow = wsPrincipal.Range("B" & Rows.Count).End(xlUp).Row 'Cherche la derniere ligne de la colonne B de la feuille Principal
    Lastrow2 = wsPatri.Range("C" & Rows.Count).End(xlUp).Row 'Cherche la derniere ligne de la colonne B de la feuille Patri
     
    For i = 2 To Lastrow2 ' Commence la loop a partire de la ligne 2 (ligne 1 titre) de la feuille Patri
     
    Lastrow2 = wsPatri.Range("C" & Rows.Count).End(xlUp).Row 'Actualiser la derniere ligne de la colonne B de la feuille Patri
     
     
            j = 2 ' Commence la loop a partire de la ligne 2 (ligne 1 titre) de la feuille Principal
        Do
            Found = False
     
    'Check si colonne l'article de la feuille Patri est dans la conne B de la feuille Principal
                    If wsPatri.Range("C" & i) = wsPrincipal.Range("B" & j) Then
     
                            'Si oui on sort de la loop
                            Found = True
     
                    'Si l'article n'a pas etait trouve et que la loop a fait toute les lignes
                    ElseIf Found = False And Lastrow = j Then
     
                            'On copie larticle non trouve de la feuille Patri dans la feuille Principal dans la premiere cellule
                            'vide de la colonne B de la feuille Principal
                            wsPrincipal.Range("B" & Lastrow + 1) = wsPatri.Range("C" & i)
     
                            'Reinitialise la derniere ligne de la colonne B feuille Principal
                            Lastrow = wsPrincipal.Range("B" & Rows.Count).End(xlUp).Row
     
                    End If
     
            'Article suivant de la feuille Principal
            j = j + 1
            Loop Until Found = True Or j > Lastrow 'Loop jusqu'a que l'article soit trouve ou jusqu'q la derniere ligne
     
    'Article suivant de la feuille Patri
    Next i
     
     
    End Sub
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [XL-2007] synchroniser deux fichiers excel avec macro
    Par sarl-78 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/05/2012, 10h14
  2. [XL-2010] VBA - Télécharger deux fichier excel depuis yahoo finance
    Par larson101 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 02/05/2011, 14h43
  3. lier deux fichiers excel avec conditions
    Par delphine1987 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/02/2011, 15h59
  4. acceder au code vba à partir d'un fichier excel 2003 depuis 97
    Par miko91 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 18/10/2007, 16h01
  5. [VBA-E] Transfert D'images Entre Deux Fichiers Excel
    Par Kevin_18 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/04/2007, 14h43

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