Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Comparaison de liste de nom

  • Initiateur de la discussion Initiateur de la discussion LOLUFE
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

LOLUFE

Guest
Bonjour à tous et toutes

Je plante vite fait le decors

J'ai une liste de nom "Officielle" ,colonne A ,et une liste de base de donnée Colonne B, je voudrais faire apparaitre dans une autre colonne ( c ?) les nom qui ne figure pas dans la liste officielle , j'ai cherché sur le forum mais je patauge allègrement .

Si quelqu'un d'entre vous pour m'aider et me donner quelque explications serait super

D'avance merci et super forum (un peu hard des fois mais super )
😱
 

Pièces jointes

Re : Comparaison de liste de nom

Bonjour,

=INDEX(Liste2;PETITE.VALEUR(SI(ESTNA(EQUIV(SUPPRESPACE(Liste2);Liste1;0));EQUIV(Liste2;Liste2;0);"");LIGNE(INDIRECT("1:"&LIGNES(Liste2)))))
Valider avec Maj+ctrl+entrée

JB
 

Pièces jointes

Dernière édition:
Re : Comparaison de liste de nom

Bonjour,

Une piste : utiliser MDF Doublons qui permet d'identifier, à l'inverse de ton raisonnement, les doublons et ainsi tu sais ceux qui n'y sont pas, par déduction ?

La voici avec les doublons surlignés grâce à MDF Doublons. Ceux qui sont surlignés en vert dans la liste (de la colonne B que j'ai collés au dessous pour faire la comparaison) sont des doublons par rapport à la liste de la colonne A (ou en double en tout cas), donc les autres, non.

Pour te dépanner en attendant une autre soluce car j'imagine que tu n'as pas à le faire qu'une fois.

Edit : comme j'ai eu des soucis avec xld, je ne pouvais plus poster, le retard fait que tu as la solution de la part de Jacques et abcd, chapeau à eux.
 

Pièces jointes

Re : Comparaison de liste de nom

essai ca !

Sub test()
h = 1
Sheets("Feuil1").Select
For i = 1 To 43
nom = Cells(i, 2)
present = False
For y = 1 To 34
If Cells(y, 1) = nom Then
present = True
End If
Next y
If present = False Then
Cells(h, 3) = nom
h = h + 1
End If
Next i
End Sub

Cordialement !
 
Re : Comparaison de liste de nom




Merci à tous pour vos piste , sinon comment tester ce que tu me dit plus haut ?

Cdt Philippe
 
Re : Comparaison de liste de nom

Salut,
tu fais alt +F11

ca va ouvrir visual basic editeur

ensuite dans ce logiciel tu fais insertions/module
ca va ouvrir une feuille tu copie ce que j ai mis dedans de la ligne "sub ...."
jusqu a "end sub"

ensuite tu appuie sur la fleche play en haut de ce logiciel pour lancer le programme

Par la suite si tu veux lancer le programme tu peux aller dans excel sous
Outils/macro/lancer macro et tu devrais avoir le nom de la macro ici je l ai nommée test

Bon courage 😀
 
Re : Comparaison de liste de nom

Merci bien Suistrop j'ai reussi à le faire fonctionner mais sa ne "fonctionne pas " il y a des erreurs , et je ne sais pas amelioré la formule , mais merci deja pour cette avancé
 
Re : Comparaison de liste de nom

si tu l utilise pour ton fichier en entier il se peux qu il y ai des erreurs....
je vais essayer de t expliquer comment marche le programme !
les ligne avec ' devant sont considéré comme des comentaire donc ca ne perturbe pas le programme !!


Code:
'début du programme test
Sub test()
'h va nous servir a chaque fois qu on a trouver un editeur qui n est pas dans la  colonne officiel on va le marquer et il faudra donc passer a la ligne suivante 
h = 1
'ici on selectionne la feuille excel ou on va utiliser le programme
Sheets("Feuil1").Select
'boucle qui comment a 1 ligne du premier nom de la SECONDE colonne et qui termine a 43 dernier nom de la SECONDE colonne comme tu l as mis dans le fichier que j ai télécharger
For i = 1 To 43
'on récupere le nom dans la colonne 2 est on le met dans la variable nom
nom = Cells(i, 2)
'par défaut on dit qu il est pas présent dans la colonne 1
present = False
'on va vérifier si il est present dans la colonne 1 pour se faire on parcour tout les nom de la ligne 1 a 34 dans ton exemple
For y = 1 To 34
'on va voir si on le trouve
If Cells(y, 1) = nom Then
'si on le trouve alors on dire qu il est present donc present = true
present = True
End If
Next y
'si on l a pas trouver dans la colonne present est tjs faux
If present = False Then
'donc on le note dans la colonne3
'ici on voit bien que le h est utilise pour savoir sur quel ligne ecrire le nom dans la colonne 3
Cells(h, 3) = nom
'on a ecrit le nom il faut donc rajouter 1 a h pou que le prochain nom se fasse sur la ligne suivante
h = h + 1
End If
Next i
'FINI
End Sub
 
Re : Comparaison de liste de nom

Avec fonction perso matricielle:


=diff(Liste2;Liste1)

Code:
Function Diff(champ As Range, champ2 As Range)
   Dim temp()
   ReDim temp(1 To champ.Count)
   j = 1
   For i = 1 To champ.Count
      témoin = IsError(Application.Match(Trim(champ(i)), champ2, 0))
      If témoin Then
         temp(j) = champ(i): j = j + 1
      End If
   Next i
   Diff = Application.Transpose(temp)
End Function


JB
 

Pièces jointes

Dernière édition:
Re : Comparaison de liste de nom

GROS SOUCIS :
il y a des nom avec des espaces a la fin et d autre sans .....
j ai rajouter la fonction trim() sur la cellule ca enleve les espaces superflu
la ca devrais marcher ...

Code:
'début du programme test
Sub test()
'h va nous servir a chaque fois qu on a trouver un editeur qui n est pas dans la  colonne officiel on va le marquer et il faudra donc passer a la ligne suivante
h = 1
'ici on selectionne la feuille excel ou on va utiliser le programme
Sheets("Feuil1").Select

'boucle qui comment a 1 ligne du premier nom de la SECONDE colonne et qui termine a 43 dernier nom de la SECONDE colonne comme tu l as mis dans le fichier que j ai télécharger
For i = 1 To 43
    'on récupere le nom dans la colonne 2 est on le met dans la variable nom
    nom = Trim(Cells(i, 2))
    'par défaut on dit qu il est pas présent dans la colonne 1
    present = False
    
    'on va vérifier si il est present dans la colonne 1 pour se faire on parcour tout les nom de la ligne 1 a 34 dans ton exemple
    For y = 1 To 34
        'on va voir si on le trouve
        If Trim(Cells(y, 1)) = nom Then
        'si on le trouve alors on dire qu il est present donc present = true
        present = True
        End If
    Next y
    
    'si on l a pas trouver dans la colonne present est tjs faux
    If present = False Then
        'donc on le note dans la colonne3
        'ici on voit bien que le h est utilise pour savoir sur quel ligne ecrire le nom dans la colonne 3
        Cells(h, 3) = nom
        'on a ecrit le nom il faut donc rajouter 1 a h pou que le prochain nom se fasse sur la ligne suivante
        h = h + 1
    End If
    
Next i
'FINI
End Sub
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
18
Affichages
601
Réponses
12
Affichages
364
Réponses
5
Affichages
700
  • Question Question
Microsoft 365 problème d'index
Réponses
19
Affichages
498
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…