comparaison de deux listes dans excel

miss blue

XLDnaute Nouveau
bonjour à tous ,
j'aimerais comparer deux colonnes de noms pour trouver quel nom de la deuxième colonne ne figure pas dans la première .(mettre en couleur par exemple)
j'ai essayé des formules avec si mais je n'y arrive pas ... quelqu'un peut 'il m'aider ?
MERCI DAVANCE
 

miss blue

XLDnaute Nouveau
Re : comparaison de deux listes dans excel

bonjour jmps ,
je te remercie beaucoup pour ta réponse : j'ai appliqué la formule et ça marche c'est super!!!
je vais poser une colle : ce qui m'arrangerait vraiment maintenant c'est de pouvoir copier automatiquement dans la colonne 1, les noms qui se mettent en couleur de la colonne 2 .... c'est possible ça?
MERCI D'avance
 

miss blue

XLDnaute Nouveau
Re : comparaison de deux listes dans excel

rebonsoir jmps , tu vas me trouver pas douée du tout mais je ne trouve pas la macro sur le fichier joint: j'ai ouvert, j'ai vu qu'un nom rajouté à la colonne 2 s'ajoute bien à la 1 (exactement ce que je voudrais faire ) mais pas fichue de trouver où se cache la macro , suis désolée ...(quand je clique sur macro je ne vois aucune macro ) et j'ai cliqué un peu partout je ne trouve pas.... merci de me dépanner encore :)
 

miss blue

XLDnaute Nouveau
Re : comparaison de deux listes dans excel

comme prévu: rebonjour jmps ,
j'ai su trouver ton code vba, mais comme je n'ai jamais fait ça bien sûr ça ne marche pas ,(jusque là je créais ma macro par la commande automatique: je dois préciser que c'est mon premier classeur))
j'ai remplacé A par B (ma colonne 1) et B par F (ma colonne 2) . comment préciser qu'il s'agit d'une macro sur feuille 1?
je patauge ferme : quand je crois l'avoir créée ça me met un message d'erreur .
hilfe!!!
moult mercis d'avance
 

Gorfael

XLDnaute Barbatruc
Re : comparaison de deux listes dans excel

miss blue à dit:
comme prévu: rebonjour jmps ,
j'ai su trouver ton code vba, mais comme je n'ai jamais fait ça bien sûr ça ne marche pas ,(jusque là je créais ma macro par la commande automatique: je dois préciser que c'est mon premier classeur))
j'ai remplacé A par B (ma colonne 1) et B par F (ma colonne 2) . comment préciser qu'il s'agit d'une macro sur feuille 1?
je patauge ferme : quand je crois l'avoir créée ça me met un message d'erreur .
hilfe!!!
moult mercis d'avance
Salut Miss Blue
Mets en pièce jointe ton fichier (juste la feuille contenant la macro qui ne marche pas) qu'on t'explique pourquoi
A+
 

miss blue

XLDnaute Nouveau
Re : comparaison de deux listes dans excel

hello jmps, ich weiss nicht was soll es bedeuten......
la macro marche effectivement quand on rajoute des noms manuellement (je ne m'en étais pas aperçue: car moi je les ai copié collé de la page 2 sur la 1(je parle de la colonne f) )))je viens de vérifier et dans ce cas là ça ne marche pas ..... une solution?
MERCI D'avance :)
ps : suis quand m^me rassurée d'avoir su mettre ta macro )))
 

Gorfael

XLDnaute Barbatruc
Re : comparaison de deux listes dans excel

Salutations respectueuses à Miss Blue, José, et le forum

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("F:F")) Is Nothing Then Exit Sub 'Range à adapter
    Dim Derligne As Integer, cel As Range
    Derligne = Range("B65536").End(xlUp).Row 'Colonne à adapter
    For Each cel In Range("B1:B" & Derligne) 'Range à adapter
        If cel = Target Then Exit Sub
    Next cel
    Range("B" & Derligne + 1) = Target 'Colonne à adapter
End Sub
Si c'est bien celle-ci qui coince, ça doit dépendre de l'action que tu fais :
Target est la plage qui a été modifiée dans ta feuille liée (Feuil1)
Si tu entres 1 valeurs dans une cellule de la colonne F:
- Le premier test est faux (intersection target et colonne F non-vide)donc on continue
- On calcule la dernière ligne de B (DerLigne)
- Pour chacune des cellules de B (1ère à dernière ligne), si on trouve une cellule dans B qui est égale à la modif, on sort de la macro, sinon si on arrive à la fin de la boucle, on copie la valeur de la cellule de F à la fin de B

Il me semble que c'était ce que tu demandais ?

Le seul petit soucis que je vois, provient plus de mon habitude de couper les cheveux en 16 : en cas de recopie incrémentielle, ou de copier/coller de plusieurs cellules, target comportant plusieurs cellules provoque un problème d'incompatibilité de type.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Derligne As Long
Dim Cel_Ref As Range
Dim Cel_test As Range
Dim Plage_Test As String
Dim Flg_Test As Boolean
 
If Intersect(Target, Columns(6)) Is Nothing Then Exit Sub
'si ça ne concerne pas la colonne F, on sort
Plage_Test = Intersect(Target, Columns(6)).Address(0, 0)
'on détermine l'adresse des cellules de F ayant été modifiées
Derligne = Range("B65536").End(xlUp).Row
'Comme Derligne peut atteindre 65536, on peut dépasser la capacité d'un integer
For Each Cel_test In Range(Plage_Test)
'Pour chacune des des cellules modifiées de la colonne F
    Flg_Test = True
    'Variable test à Vrai
    For Each Cel_Ref In Range("B1:B" & Derligne)
    'Pour chacune des cellules de B
        If Cel_Ref = Cel_test Then
        'si la cellule de F existe en B
            Flg_Test = False
            'Variable à Faux
            Exit For
            'on sort de la boucle cel_ref
        End If
    Next Cel_Ref
    'sortie de la boucle avec 2 possibilités pour Flg_Test:
    'Faux valeur existant en B; Vrai valeur à créer en B
    If Flg_Test Then
    'si flg_test=true
        Derligne = Derligne + 1
        'on passe à la (dernière ligne de B)+1
        Range("B" & Derligne) = Cel_test
        'on copie la cellule de F dans B
    End If
Next Cel_test
End Sub
le code de José à ma sauce :p

Si c'est pas ça ton problème, explique ce que tu fais et ce qui se passe.

Par contre, ton fichier présente une anomalie flagrante (à mon sens) : tu utilises des raccourcis Excel pour lancer tes macros. Ce genre de méthode est à éviter : si quelqu'un veut utiliser ton PC pour faire un p'tit truc en 30", ça risque d'avoir un résultat interessant.
Si tu travailles souvent sur office (et même d'autres logicieks), les commandes Ctrl+C, Ctrl+V, Ctrl+X, Ctrl+A, Ctrl+S et Ctrl+Q sont souvent employées, surtout dans les moments de besoin de rapidité, et avec le stress, une explosion est à craindre :D

A+
J'étais en train de répondre : I"m the best
 
Dernière édition:

miss blue

XLDnaute Nouveau
Re : comparaison de deux listes dans excel

bonsoir gorfael , ( bonsoir à tous)
je viens de trouver ta réponse ,
merci de tes conseils, je note et je modifie
je vais essayer les codes et je vous dirai ce qui se passe ....
en attendant bonne soirée à tous
 

miss blue

XLDnaute Nouveau
Re : comparaison de deux listes dans excel

bonjour jmps et gorfael ,
merci pour votre aide mais décidément je n'y arrive pas : le code de jmps marchait: cad quand je rentre les pseudos en les écrivant dans la colonne F: mais si je copie les listes de la feuille 2(colonnes A et C) pour les coller en page1 en colonne F : rien ne se passe ... j'ai essayé le code de gorfael et je n'y arrive pas non plus...là les choses se corsent: comme j'ai conservé le truc que m'avait donné jmps pour la mise en forme conditionnelle , je vois les nouveaux pseudos en couleur dès que je colle la liste de pseudos en F, puis leur couleur change(là je me suis dit c'est parce qu'ils se collent dans la colonne B) mais les nouveaux pseudos vont se coller non pas à la suite des autres mais nettement plus bas(500 lignes) et j'y retrouve quelques pseudos déjà existants .....en plus ça bloque ferme )))
puis je encore espérer de l'aide ?
MERCI D AVANCE
 

miss blue

XLDnaute Nouveau
Re : comparaison de deux listes dans excel

rebonjour,
j'ai identifié le problème qui concerne la copie de pseudos déjà existants : il s'agit d'un pb de minuscules et majuscules et de pseudos avec un espace , que faut 'il faire?
En revanche je n'ai pas trouvé pourquoi ils s'inscrivent si bas et non pas à la fin de la liste .........
merci d'avance .........
 

Gorfael

XLDnaute Barbatruc
Re : comparaison de deux listes dans excel

miss blue à dit:
rebonjour,
j'ai identifié le problème qui concerne la copie de pseudos déjà existants : il s'agit d'un pb de minuscules et majuscules et de pseudos avec un espace , que faut 'il faire?
En revanche je n'ai pas trouvé pourquoi ils s'inscrivent si bas et non pas à la fin de la liste .........
merci d'avance .........
Salut
comme tu as fait des modifs, ce serait bien de mettre ta macro, qu'on reparte dessus.
Pour le fait d'écrire loin vers le bas, ça vient de la méthode employée pour trouver la dernière cellule :
elle correspond dans Excel à aller à la dernière cellule de la colonne et à faire un Ctrl+flèche vers le haut.
Le problème avec une telle manip, c'est que si une cellule n'est pas vide (une formule, un espace, ""), à l'affichage, tu peux ne rien avoir, mais Excel détecte que la cellule n'est pas vide et considère que on doit faire la copie à partir de cette cellule.

On peut s'affranchir des espaces et des problèmes de majuscules / minuscules avec un test du style
if Replace(ucase(Cel_Ref) , " ", "") = Replace(ucase(Cel_test) , " ", "") then
(d'après mon code :) )
Mais l'espace peut être remplacé par '-', par '.', etc. T'es pas dans le KK

A+
 

Statistiques des forums

Discussions
312 789
Messages
2 092 125
Membres
105 226
dernier inscrit
Pepecham