"fusionner" deux feuilles

leconsenchefdu971

XLDnaute Nouveau
Bonjour à tous,
je suis nouveau sur ce forum et suis à la recherche d'une solution que je n'ai pas trouvée -sauf erreur- dans les archives.
Je souhaiterais savoir s'il est possible de "fusionner" deux feuilles Excel (2007) en enrichissant l'une à partir de l'autre.
Exemple:
j'ai une feuille 1
dans la colonne A, des identifiants: 1, 2, 3, 4,...
dans mes colonnes B,C,... des données.

dans une feuille 2
dans la colonne A des identifiants -les mêmes ou différents de ceux de la feuille 1: 1, 3, 5, 6...
dans mes colonnes B,C,... des données complémentaires de celles de la feuille 1.

Comment faire pour mettre en relation les deux feuilles et faire que les colonnes B et C de ma feuille 2 viennent à la suite de celles de la feuille 1, en m'appuyant sur l'identifiant pour lier les informations.
Je joins un fichier qui sera plus explicite.
PS: dans ma feuille 1, je peux avoir deux fois le même identifiant mais avec deux données différentes.

Merci à ceux qui pourront m'apporter une solution
 

Pièces jointes

  • fusion.xlsx
    9 KB · Affichages: 692
  • fusion.xlsx
    9 KB · Affichages: 742
  • fusion.xlsx
    9 KB · Affichages: 751

Yaloo

XLDnaute Barbatruc
Re : "fusionner" deux feuilles

Bonsoir leconsenchefdu971 et bienvenu sur XLD,

Les données de la feuille 2 colonne B et C doivent compléter les données de la feuille 1 en colonne B et C ou alors ces données doivent se positionner en colonne D et E.

A te relire

Martial
 

Yaloo

XLDnaute Barbatruc
Re : "fusionner" deux feuilles

Bonjour leconsenchefdu971, le forum,

Je souhaiterais savoir s'il est possible de "fusionner" deux feuilles Excel (2007) en enrichissant l'une à partir de l'autre.

Comment faire pour mettre en relation les deux feuilles et faire que les colonnes B et C de ma feuille 2 viennent à la suite de celles de la feuille 1, en m'appuyant sur l'identifiant pour lier les informations.

Cela veut-il dire que tous tes identifiants de la feuille2 seront dans la feuille1 ? Si ce n'est pas le cas, doit-on créer des lignes dans la feuille1 (à la suite) avec les données de la feuille2 non trouvées dans la feuille1 ?

A te relire

Martial
 

Yaloo

XLDnaute Barbatruc
Re : "fusionner" deux feuilles

Re,

Bon je suis parti sur le fait qu'il fallait copier toutes les données de la feuille2 dans la feuille1.

Vois si le fichier ci-dessous te convient.

A te relire

Martial
 

Pièces jointes

  • fusion.xlsm
    20.8 KB · Affichages: 929
  • fusion.xlsm
    20.8 KB · Affichages: 1 042
  • fusion.xlsm
    20.8 KB · Affichages: 1 067

Yaloo

XLDnaute Barbatruc
Re : "fusionner" deux feuilles

Bonjour leconsenchefdu971, le forum,

Vois avec le fichier ci-joint, cela devrait répondre à ta demande.

A te relire

Martial
 

Pièces jointes

  • fusion V2.xlsm
    22.2 KB · Affichages: 1 019
  • fusion V2.xlsm
    22.2 KB · Affichages: 945
  • fusion V2.xlsm
    22.2 KB · Affichages: 801

Yaloo

XLDnaute Barbatruc
Re : "fusionner" deux feuilles

Non j'déconne, faut pas croire aux miracles !

Il suffit de faire Alt + F11 pour ouvrir Visual Basic Editor, il y a un Module1 (double-clic dessus) à droite apparait la macro, le texte en vert correspond à de l'aide (pour cela il faut qu'il soit précédé de l'apostrophe)

VB:
Option Explicit
Sub Fusion()
'Définit les variables
Dim i&, j&, DerL&
Dim Ws1 As Worksheet, Ws2 As Worksheet
'Permet de donner un nom plus court à tes feuilles
Set Ws1 = Worksheets("Feuil1"): Set Ws2 = Worksheets("Feuil2")
'Avec la feuille 2
With Ws2
  'Pour toutes les lignes de 1 à la fin de ta feuille 2
  For i = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
    'Dernière ligne de la feuille 1
    DerL = Ws1.Cells(Rows.Count, 1).End(xlUp)(2).Row
    'Si la valeur de la cellule de la feuille 2 de la colonne 1 ligne i est trouvée
    'dans la colonne 1 de la feuille 1 alors on continu
    If Not IsError(Application.Match(.Cells(i, 1), Ws1.Columns(1), 0)) Then
        'Pour toutes les ligne j de la feuille 1 jusqu'à la dernière ligne
        For j = 1 To DerL
          'Si la cellule de la feuille 2 est égale à la cellule de la feuille 1, alors on continu
          If Cells(j, 1) = .Cells(i, 1) Then
            'On copie les cellules des colonnes 2 et 3 dans les cellules de la feuille 1 en colonne 4 et 5
            Ws1.Cells(j, 4) = .Cells(i, 2)
            Ws1.Cells(j, 5) = .Cells(i, 3)
          End If
        'Prochaine ligne de la feuille 1
        Next
      'Si l'on a pas trouvé la valeur de la feuille 2 alors on ajoute une ligne
      Else
        'On copie la valeur de la colonne 1, 2 et 3 dans la feuille 1 colonne 1, 4 et 5
        Ws1.Cells(DerL, 1) = .Cells(i, 1)
        Ws1.Cells(DerL, 4) = .Cells(i, 2)
        Ws1.Cells(DerL, 5) = .Cells(i, 3)
        'On ajoute 1 pour la dernière ligne
        DerL = DerL + 1
    End If
  'Prochaine ligne i de la feuille 2
  Next
End With
End Sub

N'hésites pas si tu as des questions.

A+

Martial
 

Pièces jointes

  • fusion V2.xlsm
    23.1 KB · Affichages: 345
  • fusion V2.xlsm
    23.1 KB · Affichages: 424
  • fusion V2.xlsm
    23.1 KB · Affichages: 460

gosselien

XLDnaute Barbatruc
Re : "fusionner" deux feuilles

Bonjour carbafrise et le forum,

tu dois ouvrir ton propre post et ne pas insérer ta demander dans celui d'une autre question/personne et en y attachant une copie anonymisée de ton fichier pour une meilleur aide et surtout être clair dans ta demande :)

P.
 

Discussions similaires

Réponses
1
Affichages
222
Réponses
4
Affichages
197

Statistiques des forums

Discussions
312 489
Messages
2 088 857
Membres
103 979
dernier inscrit
bderradji