Comparer deux colonnes sur excel

Résolu
Sophie -  
 Sophie -
Bonjour,

Je dois comparer deux séries de données sur un fichier excel.

Sur la première feuille, dans la colonne A, j'ai inscrit la première série.
Sur la deuxième feuille, dans la colonne A, la deuxième série.
J'ai 41 lignes de plus sur la feuille 2.
J'aimerais isoler ces 41 numéros en plus, mais je ne vois pas comment faire.

Quelqu'un aurait une solution à me proposer?

Merci d'avance

5 réponses

Doudou95 Messages postés 1561 Date d'inscription   Statut Membre Dernière intervention   275
 
tu pourrais poster sur https://www.fichier-xls.fr/ par exemple ton fichier excel et me donner le lien parce que je comprends pas tout là
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour,
Une solution par macro vous conviendrait?
0
Sophie
 
@ Pijaku : je n'ai jamais fait de macro, mais je peux toujours tenter.

@ Doudou95 : ce sont des séries de 9 chiffres présentés sous cette forme : 111111111.
0
Doudou95 Messages postés 1561 Date d'inscription   Statut Membre Dernière intervention   275
 
Voila ma question est les 41 valeurs sont à isoler de quelle manière? dans une colonne? une fiche récapitulative?
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Si tu veux une solution par macro :
1- ouvre le classeur excel concerné,
2- tape : ALT+F11
3- sous VBe (ainsi ouvert) fait : Insertion/Module
4- Copier/Coller le code en entier dans ce module :
Sub ExtractionsDifferencesEntreColonnesAdesDeuxFeuilles() 
Dim Tabl1(), Tabl2() 
Dim MonDico1 As Object, MonDico2 As Object 
Dim c 
Dim Sh1 As Worksheet, Sh2 As Worksheet, Sh3 As Worksheet 
Dim DrLig As Long 

Set Sh1 = Sheets("Feuil1") 
With Sh1 
    DrLig = .Range("A" & Rows.Count).End(xlUp).Row 
    Tabl1 = .Range("A1:A" & DrLig) 
End With 
Set MonDico1 = CreateObject("Scripting.Dictionary") 
For Each c In Tabl1 
    MonDico1(c) = "" 
Next c 

Set Sh2 = Sheets("Feuil2") 
With Sh2 
    DrLig = .Range("A" & Rows.Count).End(xlUp).Row 
    Tabl2 = .Range("A1:A" & DrLig) 
End With 
Set MonDico2 = CreateObject("Scripting.Dictionary") 
For Each c In Tabl2 
    If Not MonDico1.exists(c) Then MonDico2(c) = "" 
Next c 

Set Sh3 = Sheets("Feuil3") 
With Sh3 
    DrLig = .Range("A" & Rows.Count).End(xlUp).Row 
    .Range("A1:A" & DrLig).Clear 
    .Range("A1").Resize(MonDico2.Count, 1) = Application.Transpose(MonDico2.keys) 
End With 
End Sub

---------!! Les adaptations possibles -------------------
5- remplace dans ce code, le nom des feuilles par les noms de tes feuilles en laissant les guillemets. J'ai fait en sorte que cela fonctionne si ta colonne A en Feuil2 contient plus de données que la colonne A en Feuil1...
5 bis- la feuille notée "Feuil3" dans le code est la feuille de restitution. La macro fait la différence entre la colA feuil1 et la ColA Feuil2, et vient coller la liste des différences en Feuil3.
------------Fin des adaptations---------------------------
6- Ferme VBE
7- !!! Enregistre ton classeur Excel sous un autre nom, on ne sait jamais!!!!!
8- Tape ALT+F8, clic sur ExtractionsDifferencesEntreColonnesAdesDeuxFeuilles puis sur Exécuter
9- va voir en Feuil3......

Code basé sur l'exemple de Mr Boisgontier Jacques
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Salut pijaku,

Déjà tous mes voeux pour cette nouvelle année :-)
Heuuuu, là c'est pas utiliser un canon pour écraser une mouche ? ;-)

pour le demandeur : fichier exemple par une petite formule : https://forums.commentcamarche.net/forum/affich-24110872-comparer-deux-colonnes-sur-excel#8

eric
0
Doudou95 Messages postés 1561 Date d'inscription   Statut Membre Dernière intervention   275
 
si elle fait ça régulièrement faudrait peut être ajouter un bouton sur excel avec appel de la macro complémentaire
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
@Eriiic, Bonjour et mes meilleurs voeux à toi et tes proches.
Heuuuu, là c'est pas utiliser un canon pour écraser une mouche ? ;-) Belle expression! Je la reprendrait pour utilisation personnelle...
Tu as certainement raison. Mais supposons qu'elle n'est que 42 différences sur 48 000 lignes... De plus, sur les conseils de Michel_m, j'étudie les dictionnary depuis hier, alors étant dans le cambouis, j'en profite!! J'ai bien cherché une matricielle qui regrouperait les données, mais mon mal de crâne m'a empêché de continuer........
L'avantage de cette macro étant de regrouper les différences.

@Doudou95 : Bonne année également.
Pourquoi pas. Cependant, lorsqu'on le connais, ALT-F8 est bien et n'encombre pas les pages avec des boutons...
0
Doudou95 Messages postés 1561 Date d'inscription   Statut Membre Dernière intervention   275
 
J'ai besoin de voir le fichier pour mieux comprendre.
Le tri en soit n'est pas compliquer que ce soit en macro ou non mais la macro par exemple, le code changera.
-1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour,

En supposant que tu as une ligne de titre et que tes données commencent en ligne 2, saisir dans Feuil2!B2 :
=NB.SI(Feuil1!A:A;A2)
et recopier vers le bas.

Les valeurs absentes de feuil1 auront 0 en colonne B.
Reste à filtrer sur cette colonne.

eric
-1
Sophie
 
Merci. Je viens de tenter, j'ai comme résultat #NOM? sur toutes les lignes.
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
c'est que tu l'as mal écrite ou tu as un excel pas en français.
pas besoin de macro pour ça...

exemple : https://www.cjoint.com/?BAgnjQHj8bm

eric
0
Sophie
 
C'est bon, merci de votre aide à tous!
0