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.