Fusionner deux tableaux

Résolu
Capucine21 Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   -  
Capucine21 Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   - 22 janv. 2016 à 15:24
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

A voir également:

1 réponse

Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   61
 
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
Capucine21 Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   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
Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   61
 
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
Capucine21 Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   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
Capucine21 Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   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
Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   61 > Capucine21 Messages postés 63 Date d'inscription   Statut Membre Dernière intervention  
 
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