Macro : Récup liste sans doublons de deux feuilles [Résolu/Fermé]

Signaler
-
Messages postés
10
Date d'inscription
mercredi 9 juillet 2014
Statut
Membre
Dernière intervention
24 juillet 2014
-
Bonjour à tous,

Après avoir passé plusieurs heures de recherches infructueuses, je me décide à poster.

Environnement: Office 2013 (si possible il faudrait que ce soit lisible sur du 2003)

Explication du fichier et de mon besoin :

J'ai une feuille nommé xxx

Cette feuille est une extraction d'un soft.
Elle est amené à être de plus en plus longue (1884 lignes pour le moment)

Une seconde feuille nommé yyy

Cette feuille est mis à jours régulièrement à la main.
Elle est ammené à être de plus en plus longue (2036 lignes pour le moment)

La troisième feuille nommé liste zzz

Je dois récupérer l'ensemble de la colonne A de xxx et l'ensemble de la colonne A de yyy mais sans doublon.
Autre particularité, il y a des cellules vides dans yyy

Avec des fonctions je n'y arrive pas, surement via une macro mais je ne m'y connais pas du tout, mis à part les enregistrements de manipulation simple ...

-----

Autre info
Dans la feuille liste zzz je récupère des informations des deux autres feuilles via des recherchev.

En colonne B
=RECHERCHEV(A2;'yyy'!$A$1:$R$2036;5;FAUX)

En colonne C
=RECHERCHEV(A2;'yyy'!$A$1:$R$2036;2;FAUX)

En colonne D
=RECHERCHEV(A2;'yyy'!$A$1:$R$2036;3;FAUX)

En colonne E
=RECHERCHEV(A2;'yyy'!$A$1:$R$2036;4;FAUX)


En colonne F
=RECHERCHEV(A2;xxx!$A$4:$AQ$1769;10;FAUX)

En colonne G
=RECHERCHEV(A8;xxx!$A$4:$AQ$1769;3;FAUX)

...

jusqu'en colone O

Donc il est important de ne modifier que la colonne A de Liste zzz pour que le reste se mette à jours.

Si vous avez des recommandations de modification sur cela je suis preneur.

Merci d'avance

Cordialement


Edition :

Ajout d'une pièce jointe afin d'avoir un visuel c'est toujours plus simple :
http://cjoint.com/?3GjoVZSI6qZ
C'est la partie en rouge du premier tableau qui me pose problème.

Hésitez pas si vous avez des questions ou remarques.

Encore merci :)


7 réponses

Bonjour,

Essayes ce fichier, ça devrait faire l'affaire :

http://cjoint.com/?0GrpjgztQg4

La Macro se trouve en feuille3 dans le VBA editor.

N'hésites pas si tu as des question ?

Bonne journée
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 58199 internautes nous ont dit merci ce mois-ci

Messages postés
10
Date d'inscription
mercredi 9 juillet 2014
Statut
Membre
Dernière intervention
24 juillet 2014

Je me suis enregistré du coup mais je ne peux plus modifier mon message.
Messages postés
10
Date d'inscription
mercredi 9 juillet 2014
Statut
Membre
Dernière intervention
24 juillet 2014

Je me permet une petite relance.
Es qu'il manque quelque chose ? Un détail ou autre ?
Par avance merci
Messages postés
10
Date d'inscription
mercredi 9 juillet 2014
Statut
Membre
Dernière intervention
24 juillet 2014

https://www.cjoint.com/?0GpmFjYWnE5
Je remet à jours le lien pour 21 jours.
Messages postés
4
Date d'inscription
mercredi 16 juillet 2014
Statut
Membre
Dernière intervention
17 juillet 2014

Pas besoin de macro ...

Alors ton 1er problème vient du faite que lorsque tu utilises RECHERCHEV(A1 dans une cellule de ZZZ, ton A1 pointe sur une cellule vide, il devrait aller pointer sur une cellule de la feuille XXX... mais du coup il y a une petite astuce ... j'ai vu ca en partant de ton fichier ...

pour récap de manière propre dans ta feuille ZZZ
Colonne A =RECHERCHEV(xxx!A2;yyy!$A$2:$R$2036;1;FAUX) => démarre bien en A2 car tes lignes en 1 sont des titres ...
Colonne B =RECHERCHEV(xxx!A2;yyy!$A$2:$R$2036;5;FAUX)

etc pour tes autres colonnes ...

Ensuite selectionne ta colonne A, puis fait Accueil/Mise en forme conditionnel/regle de mise en surbrillance / doublon ...
Tes cellules seront colorés lorsqu'elles sont en doublons ...

Selectione ntoutes tes colonnes utiles et fait FILTRE ... comme ca ensuite sur ta colonne A, il reste à faire un tri dessus sur la couleur, et elles seront regroupés, tu pourras alors supprimer à la main tes doublons.


NB: lorsque j'utilise la fonction rechercheV de manière ponctuelle, je recopie mes résultats avec COPIER/VALEUR ... comme ca je peux supprimer par ex les autres feuilles :)
Messages postés
10
Date d'inscription
mercredi 9 juillet 2014
Statut
Membre
Dernière intervention
24 juillet 2014

Bonjour Clic85,
Navré je n'avais pas vue ta réponse,
Je viens d'essayer les fonctions que tu me propose,
Ta première fonction récupère les doublons de xxx et yyy mais pas le reste.
Sur les feuilles xxx et yyy à la ligne 7 il y a bien deux noms différents justement pour pouvoir les récupérer.
Du coup là si il y a doublon c'est qu'il y a un doublon sur xxx et yyy.
En tout cas merci car ca me permet de peaufiner mes fonctions, en soit je ne pense pas que ca pose problème de commencer en A1 mais je vais suivre ton conseil en effet c'est bien plus logique et merci :)
De même pour les doublons en effet j'avais zapé la mise en forme conditionnelle qui dans ce cas m'arrange bien.
Merci clic85 pour ces informations mais il reste toujours ce problème de récupérer la colonne A de xxx et yyy dans liste zzz
Messages postés
575
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
30 mars 2016
17
Bonjour,

Mon code (qui n'est pas vraiment le mien) marche très bien, je m'en sers pour créer une liste à partir d'une colonne que des utilisateurs remplissent progressivement et la formule en extrait les valeurs sans doublon et sans espace.

PS; excel 2007 pour ma part

Après si je n'ai pas compris sa demande c'est autre chose..

--
Messages postés
575
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
30 mars 2016
17
Tu vas devoir utiliser les Macros VBA !!

Voici le code à faire pour extraire d'une colonne donnée une liste sans doublon et espaces vides supprimés :

Dans ce code, la colonne source est "b" alors que la colonne de destination est "c" :

Sub ListeSansDoublons()
Application.ScreenUpdating = False
        With Range("c1:c9000")
            .ClearContents
            .Interior.ColorIndex = xlNone
        End With
Set mondico = CreateObject("Scripting.Dictionary")
b = Range("b1", [b65000].End(xlUp)).Value
For Each c In b
    mondico(c) = ""
Next c
[x2].Resize(mondico.Count, 1) = Application.Transpose(mondico.keys)
End Sub


Dans ton cas précis, si tu dois prendre les colonnes xxx-A:A et yyy-A:A et pour les réunir dans zzz-A:A et zzz-B:B (par exemple), alors tu vas devoir d'abord définir une plage de destination pour la macro ("c" dans le code) dans la MEME feuille, à savoir xxx pour la première fois et yyy la seconde.

Une fois que tu as affecté à un bouton (qui lui peut être dans zzz) aux deux macros, il te suffit en zzz de mettre en colonne (en A:A et B:B dans la logique de notre exemple) les références aux colonnes de destination que tu auras choisies.

En espérant que ça marche ;)
Messages postés
575
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
30 mars 2016
17
ça marche avec celui-là ?

https://www.cjoint.com/?DGqqCcjBZbn
Messages postés
10
Date d'inscription
mercredi 9 juillet 2014
Statut
Membre
Dernière intervention
24 juillet 2014

Bonjour,
Je pense que l'on est plus ou moins loin.
Ce qui m'intéresse dans mon fichier c'est de remplir la colonne en rouge (la colonne A de liste zzz)
La macro que tu me propose est quasiment la première étape que je faisais à la main.
Je copiais la colonne A de xxx et la colonne a de yyy que je copiais dans une nouvelle feuille, je supprimais les doublons et je recollais tout ca dans la feuille liste zzz.
Si ca peut aider, comme je l'indiquais rien n'empêche d'ajouter une feuille ou des colonnes sur le fichier.

D'ailleurs je me rend compte que si on supprime les doublons ce n'est pas forcément le bon qui est pris en compte, est il possible de donner une couleur en fond ou à la police voir de le mettre en gras si il tel ou tel nom était en doublon ?
Messages postés
10
Date d'inscription
mercredi 9 juillet 2014
Statut
Membre
Dernière intervention
24 juillet 2014

Je me permet une petite relance au cas ou quelqu'un trouverait solution à mon problème :)
Messages postés
113
Date d'inscription
vendredi 18 juillet 2014
Statut
Membre
Dernière intervention
21 novembre 2014
7
Hello je t'avais en voyé ce fichier le 17/07, l'as tu testé ?

https://www.cjoint.com/?0GrpjgztQg4
Messages postés
10
Date d'inscription
mercredi 9 juillet 2014
Statut
Membre
Dernière intervention
24 juillet 2014

Je n'avais pas vue ton message !! Mais c'est juste génial c'est exactement ca !!!!
Merci WeaponEDGE !!!