Union de 2 feuilles

Ghislain23

XLDnaute Nouveau
Bonjour tout le monde j'espère que vous allez bien. Un nouveau défis aujourd'hui, il s'agit des données de 2 feuilles ayant une colonne en commun mais pas forcemment les même entrées. J'aimerais avoir en résultat sur la feuille3 une union des feuilles 1 et 2 comme vous pouvez le voir dans le fichier joint mais faite de manière automatique. Merci d'avance de votre aide.
 

Pièces jointes

  • Union.xlsx
    10.9 KB · Affichages: 32

Iznogood1

XLDnaute Impliqué
Re : Union de 2 feuilles

Bonjour,

intéressant, mais la spécification semble incomplète :

Pourquoi en Feui3, l'anniversaire de Ghislain est incrémenté ; est-ce une erreur dans ton fichier
Anniversaire Prénom Programme
23/02/2017 Ghislain Barbecue
24/02/2017 Ghislain Piscine
25/02/2017 Ghislain Discothèque

Entrées uniques en Feuil1 ou non : un nom n'apparaît qu'une seule fois ?
où doit-on imaginer
23/02/2017 Ghislain
23/02/2018 Ghislain
?
 

Ghislain23

XLDnaute Nouveau
Re : Union de 2 feuilles

Merci beaucoup vgendron c'est exactement ça que je voudrais mettre en place. Je sais que sais trop demandé mais pourrais tu stp commenter ton code de macro pour que je puisse l'appliquer sur le fichier orginal qui est beaucoup plus complexe que celui de l'exemple ? merci d'avance ^^
 

Ghislain23

XLDnaute Nouveau
Re : Union de 2 feuilles

Bonjour,

intéressant, mais la spécification semble incomplète :

Pourquoi en Feui3, l'anniversaire de Ghislain est incrémenté ; est-ce une erreur dans ton fichier
Anniversaire Prénom Programme
23/02/2017 Ghislain Barbecue
24/02/2017 Ghislain Piscine
25/02/2017 Ghislain Discothèque

Entrées uniques en Feuil1 ou non : un nom n'apparaît qu'une seule fois ?
où doit-on imaginer
23/02/2017 Ghislain
23/02/2018 Ghislain
?

Bonjour, en Feui3, je ne vois pas d'incémentation de l'anniversaire de Ghislain.
Comme dans mon fichier d'exple un nom peur apparaitre plusieurs fois avec les même informations comme la date d'anniversaire mais le programme est unique pour une personne donnée
 

Ghislain23

XLDnaute Nouveau
Re : Union de 2 feuilles

Hello

ci joint un exemple avec macro
dans les feuilles 1 et 2, il faut créer des tables nommées TabDataF1 et TabDataF2

Merci beaucoup vgendron c'est exactement ça que je voudrais mettre en place. Je sais que sais trop demandé mais pourrais tu stp commenter ton code de macro pour que je puisse l'appliquer sur le fichier orginal qui est beaucoup plus complexe que celui de l'exemple ? merci d'avance ^^
 

vgendron

XLDnaute Barbatruc
Re : Union de 2 feuilles

Voici

Code:
Sub fusion()
'pour chaque element de la table "TabDataF1 colonne Prénom"
For Each eleF1 In Range("TabDataF1[Prénom]")
    'boolean pour détecter les elements isolés cad absent de la feuille2
    commun = False
    'pour chaque element de la table "TabDataF colonne Prénom"
    For Each eleF2 In Range("TabDataF2[Prénom]")
        'si on est sur le meme prénom
        If eleF1 = eleF2 Then
            'à la dernière ligne de la feuille3
            With Sheets("Feuille3").Range("A65535").End(xlUp)
                'on recopie l'anniversaire: qui est sur la meme ligne que EleF1, mais colonne A
                .Offset(1, 0) = eleF1.Offset(0, -1)
                'à coté ColB, on recopie le Prénom
                .Offset(1, 1) = eleF1
                'à coté ColC, on recopie le programme: qui est sur la meme ligne que EleF, mais colonne B
                .Offset(1, 2) = eleF2.Offset(0, 1)
                'on met commun à vrai
                commun = True
            End With
        End If
    Next eleF2
    'ici, j'ai comparé le prénom de feuille1 à tous les prénoms de feuille2
    'si commmun = faux c'est qu'il n'y a pas de programme
    'on recopie donc l'anniversaire et le prénom sans programme
    If commun = False Then
        With Sheets("Feuille3").Range("A65535").End(xlUp)
                .Offset(1, 0) = eleF1.Offset(0, -1)
                .Offset(1, 1) = eleF1
        End With
    End If
Next eleF1
End Sub
 

Ghislain23

XLDnaute Nouveau
Re : Union de 2 feuilles

Voici

Code:
Sub fusion()
'pour chaque element de la table "TabDataF1 colonne Prénom"
For Each eleF1 In Range("TabDataF1[Prénom]")
    'boolean pour détecter les elements isolés cad absent de la feuille2
    commun = False
    'pour chaque element de la table "TabDataF colonne Prénom"
    For Each eleF2 In Range("TabDataF2[Prénom]")
        'si on est sur le meme prénom
        If eleF1 = eleF2 Then
            'à la dernière ligne de la feuille3
            With Sheets("Feuille3").Range("A65535").End(xlUp)
                'on recopie l'anniversaire: qui est sur la meme ligne que EleF1, mais colonne A
                .Offset(1, 0) = eleF1.Offset(0, -1)
                'à coté ColB, on recopie le Prénom
                .Offset(1, 1) = eleF1
                'à coté ColC, on recopie le programme: qui est sur la meme ligne que EleF, mais colonne B
                .Offset(1, 2) = eleF2.Offset(0, 1)
                'on met commun à vrai
                commun = True
            End With
        End If
    Next eleF2
    'ici, j'ai comparé le prénom de feuille1 à tous les prénoms de feuille2
    'si commmun = faux c'est qu'il n'y a pas de programme
    'on recopie donc l'anniversaire et le prénom sans programme
    If commun = False Then
        With Sheets("Feuille3").Range("A65535").End(xlUp)
                .Offset(1, 0) = eleF1.Offset(0, -1)
                .Offset(1, 1) = eleF1
        End With
    End If
Next eleF1
End Sub

Merci beaucoup c'est très gentil de ta part. C'est vrai que j'ai encore des zones d'ombre mais je vais bosser sur les macros. Aussi comment faire pour queà chaque fois qu'on clique sur le bouton les données s'actualisent sans se copier à la suite des données existantes comme c'est le cas à présent ?
 

Discussions similaires

Réponses
4
Affichages
167
Réponses
16
Affichages
682

Statistiques des forums

Discussions
312 509
Messages
2 089 144
Membres
104 050
dernier inscrit
Pepito93100