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

  1. Doudou95 Messages postés 1897 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
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,
    Une solution par macro vous conviendrait?
    0
  3. 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
    1. Doudou95 Messages postés 1897 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
    2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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
    3. Doudou95 Messages postés 1897 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
    4. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      @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
  4. Doudou95 Messages postés 1897 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    1. Sophie
       
      Merci. Je viens de tenter, j'ai comme résultat #NOM? sur toutes les lignes.
      0
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
    3. Sophie
       
      C'est bon, merci de votre aide à tous!
      0