Microsoft 365 RESOLU - Macro - Recherche de lignes identiques et ressortir les lignes uniques

Akortys

XLDnaute Occasionnel
Bonjour,

Je cherche à réaliser en macro le besoin suivant :
Dans un tableau de données qui se trouvera dans une feuille excel (exemple Feuille de données), je vais avoir un nombre de lignes aléatoire.
Dans ces données, je vais avoir X colonnes dont 3-4 colonnes fixe qui me serviront de colonnes de références.

Mon objectif est de scruter avec une macro, l'ensemble de ces lignes. Attention les nombres de données de la feuille de données peut-être variable dans le nombre de lignes.
Exemple :
Si le triplet d'information des colonnes A, B, E est multiple sur plusieurs lignes alors pas de soucis
Si le triplet est unique c'est à dire que les informations des colonnes A, B et E ne sont pas sur une autre ligne alors je copie/colle la ligne dans une autre feuille.

Je mets un exemple de fichier avec des données bidons pour illustrer le résultat souhaité.
L'exemple expliqué :
Le triplet de la ligne 2 (colonne A, B, E) est présent sur les lignes 2 et 6 alors c'est ok on ne fait rien
Le triplet de la ligne 3 (colonne A, B, E) est présent uniquement sur la ligne 3 alors je recopie la ligne dans la feuille "Restitution des écarts"
Le triplet de la ligne 4 est également présent sur la ligne 5 alors c'est ok on ne fait rien

Si une âme charitable veut se sacrifier je suis preneur. Sinon je me pends.
I Am Dead Singing GIF by Paramount+


Merci d'avance
 

Pièces jointes

  • Fichier de restitution des écarts.xlsx
    12.9 KB · Affichages: 11

Cousinhub

XLDnaute Barbatruc
Inactif
Bonjour,
Juste avant...
Une solution par le biais de Power Query (en natif dans ta version)
Pour mettre à jour, Ruban "Données", "Actualiser tout"
Bonne journée
 

Pièces jointes

  • Fichier de restitution des écarts.xlsx
    22.3 KB · Affichages: 10

Akortys

XLDnaute Occasionnel
Bonjour,
Juste avant...
Une solution par le biais de Power Query (en natif dans ta version)
Pour mettre à jour, Ruban "Données", "Actualiser tout"
Bonne journée
Bonjour,
Merci de ton retour c'est exactement ce qu'il me faut. Maintenant le power Query je ne connais pas je maitrise plus le vba mais en me renseignant un peu je devrais pouvoir m'en sortir.
Merci encore.
 

Akortys

XLDnaute Occasionnel
Bonjour,
Juste avant...
Une solution par le biais de Power Query (en natif dans ta version)
Pour mettre à jour, Ruban "Données", "Actualiser tout"
Bonne journée
Hello,
Me revoilà.
J'ai toujours un souci avec le fichier et les données.
Je n'arrive pas à faire apparaître les données souhaitées.
En PJ, Le fichier avec les données
 

Pièces jointes

  • Fichier de restitution des écarts - Testé pour AM2.xlsx
    26.1 KB · Affichages: 3

job75

XLDnaute Barbatruc
Bonjour Akortys,

Normalement vous devriez y arriver avec PowerQuery.

Sur Microsoft 365 vous pouvez aussi utiliser les fonctions UNIQUE et FILTRE.

Elles n'existent pas chez moi sur Excel 2019 alors j'ai ajouté une colonne A auxiliaire.

Formule en A2 propagée vers le bas :
Code:
=REPT("X";SOMMEPROD(N([@Date]&[@[Nom Prénom]]&[@Durée]=[Date]&[Nom Prénom]&[Durée]))=1)
Ensuite filtrer la colonne A sur les "X" et copier le tableau sur la 2ème feuille.

Edit : j'ai simplifié la formule.

A+
 

Pièces jointes

  • Fichier de restitution des écarts - Testé pour AM2.xlsx
    25.4 KB · Affichages: 5
Dernière édition:

Akortys

XLDnaute Occasionnel
Bonjour Akortys,

Normalement vous devriez y arriver avec PowerQuery.

Sur Microsoft 365 vous pouvez aussi utiliser les fonctions UNIQUE et FILTRE.

Elles n'existent pas chez moi sur Excel 2019 alors j'ai ajouté une colonne A auxiliaire.

Formule matricielle en A2 à tirer vers le bas :
Code:
=REPT("X";ESTERR(PETITE.VALEUR(SI([@Date]&[@[Nom Prénom]]&[@Durée]=[Date]&[Nom Prénom]&[Durée];LIGNE(T_Data));2)))
à valider par Ctrl+Maj+Entrée chez moi, ce n'est pas nécessaire chez vous.

Ensuite filtrer la colonne A sur les "X" et copier le tableau sur la 2ème feuille.

A+
Merci mais je cherchais a rester avec PowerQuery.
 

job75

XLDnaute Barbatruc
Une amélioration qui évite la colonne auxiliaire de mon post #6 :

Nom défini lig :
Code:
=EQUIV(T_Data[Date]&T_Data[Nom Prénom]&T_Data[Durée];T_Data[Date]&T_Data[Nom Prénom]&T_Data[Durée];0)
Nom défini matrice :
Code:
=SI(FREQUENCE(lig;lig)=1;lig)
Formule en A2 de la 2ème feuille, à copier à droite et vers le bas :
Code:
=SIERREUR(INDEX(T_Data;PETITE.VALEUR(matrice;LIGNE()-1);COLONNE());"")
 

Pièces jointes

  • Fichier de restitution des écarts - Testé pour AM2.xlsx
    26.4 KB · Affichages: 1

Discussions similaires

Réponses
12
Affichages
246

Statistiques des forums

Discussions
315 093
Messages
2 116 127
Membres
112 667
dernier inscrit
foyoman