Fusionner avec logique 2 tables

OliFo Messages postés 4 Statut Membre -  
OliFo Messages postés 4 Statut Membre -
Bonjour à tous,

Voici une manip' qui apparait simple mais je bloque :(!

Les deux tableaux possèdent plusieurs milliers de lignes. L'un des tableaux est constitué de Projets - Industries (avec souvent plusieurs industries par projets) et l'autre tableau est constitué de Projets - Métiers (avec égalemetn plusieurs métiers par projets).

Je souhaite me retrouver avec un tableau composé d'une liste de combinaison Projets - Industries - Métiers.

Je ne suis pas sur d'être clair donc voici une capture d'écran de ce que j'essaye de faire:



Idéalement je cherche une manière de le faire manuellement rapidement et une manière de le faire via VBA.

Merci beaucoup de vos retours/conseils,

Bonne journée/Weekend,

OliFo

1 réponse

  1. mrjenkins Messages postés 611 Statut Membre 103
     
    Salut,

    en VBA :

    Sub test()
    Dim indusRow As Long, metierRow As Long, globalRow As Long

    indusRow = 2 '1ère ligne du tableau industrie
    globalRow = 2 '1ère du tableau global

    While Cells(indusRow, "A").Value <> ""
    'On boucle sur toutes les industries
    metierRow = 2 '1ère ligne du tableau métier
    While Cells(metierRow, "E").Value <> ""
    If Cells(indusRow, "A").Value = Cells(metierRow, "E").Value Then
    'Si le projet est le même, on extrait les données
    Cells(globalRow, "H").Value = Cells(indusRow, "A").Value ' proje
    Cells(globalRow, "I").Value = Cells(indusRow, "B").Value ' industrie
    Cells(globalRow, "J").Value = Cells(metierRow, "F").Value ' métier

    globalRow = globalRow + 1 'on descend d'une ligne dans le tableau global
    End If
    metierRow = metierRow + 1 'metier suivant
    Wend
    indusRow = indusRow + 1 'industrue suivante
    Wend
    End Sub


    A tester pour les performances sur plusieurs milliers de ligne :)
    --
    1
    1. OliFo Messages postés 4 Statut Membre
       
      Génial, merci beaucoup, je suis en train de le tester mais je pense que ça va le faire !!!
      0