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 :

VBA - Croiser2 feuilles et copier les doublons dans une 3 feuille


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Octobre 2017
    Messages : 2
    Par défaut VBA - Croiser2 feuilles et copier les doublons dans une 3 feuille
    Bonjour,

    Novice en vba, je cherche à croiser deux tableaux situés chacun dans une feuille différente selon deux colonnes bien précises et communes au deux tableaux. Pour chaque itération trouvée dans la première colonne donc, je dois contrôler la valeur de la deuxième colonne. Lorsque les deux résultat concorde, je dois enfin copier les cellules de chaque tableau, y compirs celle non contrôlées, dans une troisième feuille du fichier.

    J'ai bien cherché à trouver des exemples, même approchant, parmi la multitude d'exemples du site, sans trouver chaussure à mon pied.

    Précision sur les tableaux :

    Les tableaux on le format suivant : En rouge, un extract du DHCP d'un serveur. En bleu un autre extract de l'AD du même serveur.

    NameDHCP | Domain | Mac Adress | IPV4DHCP et NameAD | OU | Domain | OS | OS Version |IPV4AD


    La première comparaison ce fait entre la colonne NameDHCP et NameAD. La seconde sur la colonne IPV4 Address.

    S'il est possible d'avoir 2 fois la même valeur dans la colonne NameAD mais impossible dans la colonne IPV4DHCP pour le même nom.

    Le but, une fois le croisement effectué d'obtenir un troisième tableau dans une nouvelle feuille comme suit : NameAD | OU | Domain | OS | OS Version |IPV4DHCP | Mac Adress

    A ce stade, j'ai adapté un code découvert lors de mes recherches :

    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
    Dim Sheet_Tab_AD, Sheet_Tab_DHCP, Sheet_Tab_XML   As Worksheet
        Dim AD_Last_Line, DHCP_Last_Line, XML_Line, i, j   As Integer
        Dim Trgt_Cells      As String
     
        Application.ScreenUpdating = False
     
        '/* Définition des Noms de Feuilles */
        Set Sheet_Tab_AD = Worksheets(2)
        Set Sheet_Tab_DHCP = Worksheets(1)
        Set Sheet_Tab_XML = Worksheets(3)
     
        '/* Définition de la dernière Ligne des tables AD & DHCP */
        AD_Last_Line = Sheet_Tab_AD.Range("A1").End(4).Row
        DHCP_Last_Line = Sheet_Tab_DHCP.Range("A1").End(4).Row
     
        '/* Traitement Table AD & DHCP vers XML */
        With Sheet_Tab_AD
          For i = 1 To AD_Last_Line
            Trgt_Cells = .Range("A" & i)
             For j = 1 To DHCP_Last_Line
                If Trgt_Cells = Sheet_Tab_DHCP.Range("A" & j) Then
                    Sheet_Tab_XML.Range("A" & XML_Line + 1) = Trgt_Cells
                    Sheet_Tab_XML.Range("B" & XML_Line + 1) = .Range("B" & i)
                    Sheet_Tab_XML.Range("C" & XML_Line + 1) = .Range("C" & i)
                    Sheet_Tab_XML.Range("D" & XML_Line + 1) = .Range("D" & i)
                    Sheet_Tab_XML.Range("E" & XML_Line + 1) = .Range("E" & i)
                    Sheet_Tab_XML.Range("F" & XML_Line + 1) = Sheet_Tab_DHCP.Range("D" & j)
                    Sheet_Tab_XML.Range("G" & XML_Line + 1) = Sheet_Tab_DHCP.Range("C" & j)
                    XML_Line = XML_Line + 1
     
                End If
             Next
          Next
        End With
     
        Application.ScreenUpdating = True
    Mais ce code ne traite que le premier critère et je n'arrives pas à integrer le second...

    Pouvez-vous m'aider ?

    Merci d'avances.

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    pour comparer la présence de la valeur de la cellule A&i dans la colonne B de B2:B6 et sans VBA :
    =SI(NB.SI($A$2:$A2;A2)>NB.SI($B$2:$B$6;A2);A2;"")

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Octobre 2017
    Messages : 2
    Par défaut VBA - Croisement de 2 feuilles avec copie des doublons dans une troisième feuille.
    Merci BENNASR pour ta réponse rapide. Malheureusement pour moi, la solution par formule n'est pas une option.

    Je dois traiter plus de 90 fichiers différents et tous sur le même modèle. C'est pourquoi je recherche un solution par macro VBA...

    Je précises que les différents tableaux de chaque fichier n'ont pas tous le même nombre de lignes, histoire de compliquer la chose.

Discussions similaires

  1. Réponses: 11
    Dernier message: 26/09/2013, 17h05
  2. [XL-2003] Copié des données dans une feuille vers une autre
    Par guillaumepops dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 27/03/2012, 16h43
  3. [AC-2007] Fusion d’enregistrement avec suppression des doublons dans champs multivaleur
    Par Daniel-Gérald dans le forum VBA Access
    Réponses: 1
    Dernier message: 15/09/2011, 05h20
  4. [XL-2010] Recherche multicritères et copie des résultats dans une autre feuille
    Par chacha49 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/08/2011, 23h25
  5. Eliminer des Doublon dans une Table
    Par Soulama dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 03/02/2005, 15h27

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