Fusionner deux tableaux

Résolu
Capucine21 Messages postés 65 Statut Membre -  
Capucine21 Messages postés 65 Statut Membre -
Bonjour,

Je suis sous excel 2013 et je voudrais fusionner deux tableau en un
Je souhaiterais que la fusion s'opère par rapport à la colonne B "numéro de pièce" et que lorsqu'il y a deux lignes pour le même numéro de pièce dans feuil1, concerver ces 2 lignes et l'intitulé de la Feuil2 vienne se coller sur la première ligne (j'ai joint un modèle)
Le summun serait que les cases se remplissent (montant débit Feuil2 vienne remplir la colonne débit Feuil1 - idem date échéance
J'ai essayé la formule RECHERCHEV mais je ne suis pas doué et cela me met un message d'erreur

Merci de vos conseils
http://www.cjoint.com/c/EKknTEiafWy

1 réponse

  1. Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   65
     
    Bonjour,

    Le summun serait que les cases se remplissent (montant débit Feuil2 vienne remplir la colonne débit Feuil1 - idem date échéance

    Je ne comprend pas, la colonne Montant débit de la feuille 2 est vide.

    Cordialement.
    0
    1. Capucine21 Messages postés 65 Statut Membre 1
       
      Désolé, je voulais dire colonne montant crédit Feuil2 se colle dans colonne montant crédit Feuil1

      Voilà la formule que j'ai écrit dans feuil1 mais j'ai un message d'erreur
      =RECHERCHEV(B2;Feuil2!A2:E567;2;FAUX)
      Merci
      0
    2. Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   65
       
      Pour la formule RECHERCHEV, n'oubliez pas les $ pour bloquer vos lignes et colonnes.

      Je peux par contre vous proposer quelque chose de plus abouti avec du VBA. Je vais travailler un peu dessus mais pour cela je veux être sûr d'avoir tout compris.

      1/: Le code va chercher les numéros de pièce en double (qui se suivent) et remplacer le premier numéro de pièce par le numéro de piece de la feuille 2 (donc B, C L, ....). On est d'accord?

      2:/ Les montants au débit de la feuille 1 vont sur la feuille 2 (si ils ont le même numéro de pièce).

      3:/ Les montants au débit de la feuille 2 vont sur la feuille 1 (si ils ont le même numéro de pièce).

      Oui mais alors, 2 numéros de pièce identiques dans la feuille 1, je met le crédit de la feuille 2 sur la première ou la deuxième ligne?
      0
    3. Capucine21 Messages postés 65 Statut Membre 1 > Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention  
       
      Pour faire simple, le tableau feuil2 doit être transférer dans Feuil1 (après Feuil2 ne sert à rien)

      http://www.cjoint.com/c/EKkoY4eDesy
      Ce qui est en rouge correspond aux cases Feuil2 qui doivent être copiées dans Feuil1
      Le point de départ, la seule colonne commune aux deux feuilles, est Numéro de pièce
      Par contre, lorsque le numéro de pièce à deux lignes dans Feuil1 (exemple ligne 7et8) soit la Feuil2 se colle sur la ligne 7 soit, si cela est possible, le collage se fait sur les lignes 7 et 8
      Moi, à ce niveau cela me dépasse complètement.
      Je vous remercie beaucoup pour le temps que vous voulez bien m'accorder
      0
    4. Capucine21 Messages postés 65 Statut Membre 1
       
      Rectification, en cas de deux lignes ou plus, le collage Feuil2 doit se faire uniquement sur la première ligne (notre exemple ligne 7 et non sur la 8)
      Merci
      0
    5. Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   65 > Capucine21 Messages postés 65 Statut Membre
       
      Re Capucine21,

      Voici le fichier, vous n'avez qu'à appuyer sur le bouton traitement.

      https://www.cjoint.com/c/EKkpqxmjlCf

      Le code est le suivant :

      Sub Code()
      
      Dim DL1 As Long
      Dim DL2 As Long
      
      
      DL1 = Sheets(1).Cells(Application.Rows.Count, 1).End(xlUp).Row
      DL2 = Sheets(2).Cells(Application.Rows.Count, 1).End(xlUp).Row
      
      For i = 2 To DL1
      For t = 2 To DL2
      
      If Sheets(1).Range("B" & i) = Sheets(2).Range("B" & t) Then
          Sheets(2).Range("A" & t).Copy Sheets(1).Range("G" & i)
          Sheets(2).Range("D" & t).Copy Sheets(1).Range("D" & i)
          Sheets(2).Range("E" & t).Copy Sheets(1).Range("F" & i)
      End If
      
      Next t
      Next i
      
      End Sub


      Je reste à votre disposition si besoin :)

      Cordialement.
      0