Fusionner deux tableaux

Résolu/Fermé
Capucine21
Messages postés
61
Date d'inscription
lundi 8 avril 2013
Statut
Membre
Dernière intervention
12 janvier 2022
- 10 nov. 2015 à 14:45
Capucine21
Messages postés
61
Date d'inscription
lundi 8 avril 2013
Statut
Membre
Dernière intervention
12 janvier 2022
- 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

1 réponse

Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
55
10 nov. 2015 à 15:04
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
61
Date d'inscription
lundi 8 avril 2013
Statut
Membre
Dernière intervention
12 janvier 2022

10 nov. 2015 à 15:22
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
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
55
10 nov. 2015 à 15:38
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
61
Date d'inscription
lundi 8 avril 2013
Statut
Membre
Dernière intervention
12 janvier 2022
> Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019

10 nov. 2015 à 15:57
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
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
55 > Capucine21
Messages postés
61
Date d'inscription
lundi 8 avril 2013
Statut
Membre
Dernière intervention
12 janvier 2022

10 nov. 2015 à 16:16
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
Capucine21
Messages postés
61
Date d'inscription
lundi 8 avril 2013
Statut
Membre
Dernière intervention
12 janvier 2022
> Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019

10 nov. 2015 à 16:23
Je vous remercie beaucoup car vous m'enlevez une grosse épine du pied ; je me voyais mal faire du copier coller ligne par ligne
C'est super, merci, merci....
0