Compraison listes dans excel
lucie
-
ccm81 Messages postés 11033 Statut Membre -
ccm81 Messages postés 11033 Statut Membre -
Bonjour,
J'ai un fichier excel dans lequel j'ai deux listes dans deux feuilles différentes. J'aimerais trouver un moyen de sortir automatiquement les noms des personnes présentes dans la feuille 1 et qui n'existe pas dans la seconde. Est-ce possible ?
Merci d'avance
Cdlt
Lucie
J'ai un fichier excel dans lequel j'ai deux listes dans deux feuilles différentes. J'aimerais trouver un moyen de sortir automatiquement les noms des personnes présentes dans la feuille 1 et qui n'existe pas dans la seconde. Est-ce possible ?
Merci d'avance
Cdlt
Lucie
3 réponses
-
Bonjour
en supposant que votre liste feuille 1 commence en A1:
en colonne B, B1:
=SI(NB.SI(Feuille2!A:A;A1)=0;A1;"")
à tirer sur la hauteur du champ
vous ressortira les nom existants en feuille 1 non présents en feuille 2
à adapter à vos champs
crdlmnt
-
Bonjour,
Oui cela fonctionne mais est ce possible d'obtenir une liste sans les cases vides au milieu (une liste avec tous les noms à la suite)
J'ai essayé en faisant un filtre presonnalisé mais on ne peut pas choisir "non vide". J'ai donc mis différent de 0 et différent de "" mais cela conserve tout de même les cases vides....
Merci
Cdlt
Lucie-
Tout dépend de ce que vous voulez:
soit votre édition est statique et une fois établie, ne sera pas modifiée par des évolutions de listes:
dans ce cas, il suffit de construire la liste avec la formule, de faire un copier / Collage spécial :"valeur" pour garder l'édition sans les formules, et de trier la colonne par ordre croissant pour avoir une liste complète sans trou.
ou alors simplement de trier ensemble les colonnes A et B en ordre croissant sur la colonne B
soit vos listes sont évolutives et pour avoir une édition sans trou en continu, vous pouvez procéder comme suit:
vos listes commencent en A2 sur les deux feuilles (pas en A1)
sur feuille 1 dans une colonne hors champ que vous pourrez masquer(colonne X pour l'exeple), entrez cette formule en X2:
=SI(NB.SI(Feuille2!A:A;A1)=0;MAX($X$1:X1)+1;0)
attention, le premier X1 est bloqué, pas le second
tirer cette formule sur la hauteur utile
en B2, placez la formule:
=SI(LIGNE()-1>MAX(X:X);"";INDEX(A:A;EQUIV(LIGNE()-1;0);1))
qui vous éditera la liste sans trou des noms inexistant en feuille 2
ici un petit modèle conforme à cette option pour faciliter la compréhension
http://www.cijoint.fr/cjlink.php?file=cj201105/cijAj9F0ck.xls
crdlmnt
-
-
bonjour à tous les deux
une option avec macro (altF11 pour acceder à l'editeur puis coller le code)
Option Explicit Const F1 = "Feuil1" Const F2 = "Feuil2" Const lidebF1 = 1 Const coF1 = "A" Const lidebF2 = 1 Const coF2 = "A" Const lidebR = 1 ' ligne debut resultat Const coR = "C" ' colonne resultat Public Sub extraction() Dim lifinF1 As Long, liF1 As Long Dim lifinF2 As Long Dim LiR As Long Dim plageR As Range, c As Range Dim nom As String lifinF1 = Sheets(F1).Range(coF1 & 65536).End(xlUp).Row lifinF2 = Sheets(F2).Range(coF2 & 65536).End(xlUp).Row Set plageR = Sheets(F2).Range(coF2 & lidebF2 & ":" & coF2 & lifinF2) LiR = lidebR For liF1 = lidebF1 To lifinF1 nom = Sheets(F1).Range(coF1 & lidebF1 + liF1 - 1).Value Set c = plageR.Find(nom) If c Is Nothing Then Sheets(F1).Range(coR & LiR).Value = nom LiR = LiR + 1 End If Next liF1 End Sub
RQ1. modifier les constantes
RQ2. j'ai mis les resultats en feuille F1
bonne suite