Compiler des identifiants provenant de deux tableaux différents

Bonjour le forum,

Je souhaite faire une liste des identifiants présents dans deux TCD (noir et jaune) en les inscrivants dans un tableau à la suite les uns les autres (Feuille BILAN F5).

C'est donc une liste exhaustive des identifiants des deux tableaux, sans doublons et qui puisse s'adapter a un nombre d'identifiants fluctuants.

Je vous joins une copie de mon fichier pour imager : ).

PS : Je souhaitais directement le faire en formule, mais je pense que du vba sera plus simple...

28tableau.xlsx (98.89 Ko)

Hello,

à tester :

Sub ListId()
    Dim lngLastRowBilan As Long, lngLastRow As Long
    Dim rngId1 As Range, rngId2 As Range

    With Worksheets("TCD")
        lngLastRow = .Range("F" & Rows.Count).End(xlUp).Row
        Set rngId1 = .Range("F4:F" & lngLastRow)
        lngLastRow = .Range("I" & Rows.Count).End(xlUp).Row
        Set rngId2 = .Range("I4:I" & lngLastRow)
        ' Transformation des ID au bon format dans la colonne CY
        .Columns("CY").ClearContents
        .Range("CY1").Resize(rngId1.Rows.Count, 1).Value2 = rngId1.Value2
        .Range("CY" & (rngId1.Rows.Count + 1)).Resize(rngId2.Rows.Count, 1).Value2 = rngId2.Value2
        lngLastRow = .Range("CY" & Rows.Count).End(xlUp).Row
        Set rngId1 = .Range("CY1:CY" & lngLastRow)
        rngId1.Replace " EMB", "", xlPart
        rngId1.RemoveDuplicates Columns:=Array(1), Header:=xlNo
    End With

    With Worksheets("BILAN")
        lngLastRowBilan = .Range("F" & Rows.Count).End(xlUp).Row
        .Range("F5:F" & lngLastRowBilan).ClearContents
        .Range("F5").Resize(rngId1.Rows.Count, 1).Value2 = rngId1.Value2
    End With
End Sub

Bonjour,

Merci beaucoup ça marche parfaitement :))

Un grand merci pour ton temps passé dessus !

J'ai juste une petite question :

Comment je peux modifier ton code afin que dans ma feuille "BILAN" dans la colonne F il clear tous les identifiants pour remettre les nouveaux en hauts sans écraser les formules dans la colonne G, H et I ?

Je ne trouve pas la solution...

bonjour

une proposition sans VBA (pas facile) qui impose de recombiner les 2 TCD avec CHOISIR(....

cordialement

12grostri.xlsm (103.28 Ko)

Bonjour,

Merci pour ta réponse !

La proposition de Rag02700 était presque parfaite, j'ai juste une modification à faire mais je ne sais pas ou la faire... je m'explique

Dans son code, sur la feuille 'BILAN' quand il insère dans la colonne F la liste des identifiants, les formules dans les colonnes G, H et J s'enlèvent...

Tu sais comment enlever ce problème ?

Sub ListId()
    Dim lngLastRowBilan As Long, lngLastRow As Long
    Dim rngId1 As Range, rngId2 As Range

    With Worksheets("TCD")
        lngLastRow = .Range("F" & Rows.Count).End(xlUp).Row
        Set rngId1 = .Range("F4:F" & lngLastRow)
        lngLastRow = .Range("I" & Rows.Count).End(xlUp).Row
        Set rngId2 = .Range("I4:I" & lngLastRow)
        ' Transformation des ID au bon format dans la colonne CY
        .Columns("CY").ClearContents
        .Range("CY1").Resize(rngId1.Rows.Count, 1).Value2 = rngId1.Value2
        .Range("CY" & (rngId1.Rows.Count + 1)).Resize(rngId2.Rows.Count, 1).Value2 = rngId2.Value2
        lngLastRow = .Range("CY" & Rows.Count).End(xlUp).Row
        Set rngId1 = .Range("CY1:CY" & lngLastRow)
        rngId1.Replace " EMB", "", xlPart
        rngId1.RemoveDuplicates Columns:=Array(1), Header:=xlNo
    End With

    With Worksheets("BILAN")
        lngLastRowBilan = .Range("F" & Rows.Count).End(xlUp).Row
        .Range("F5:F" & lngLastRowBilan).ClearContents
        .Range("F5").Resize(rngId1.Rows.Count, 1).Value2 = rngId1.Value2
    End With
End Sub

Merci beaucoup pour ton temps ! :)))

Hello,

les formules ne s'enlèvent pas :

Affichage - macro - exécuter

10tableau.xlsm (107.90 Ko)
Rechercher des sujets similaires à "compiler identifiants provenant deux tableaux differents"