Comparer deux onglets excel

sebj9 Messages postés 17 Statut Membre -  
floap66 Messages postés 6 Statut Membre -
Bonjour,

Je souhaiterais comparer deux onglets excel. Dans un premier onglet, j'ai une base de données d'un grand nombre d'entreprises.

Dans le deuxième onglet, j'ai juste les entreprises que je veux, j'aimerais donc pourvoir supprimer automatiquement les entreprises du premier onglet qui ne se trouvent pas dans le deuxième.

Comment faire ? Je pense qu'il faut une macro en VBA.

Merci d'avance

6 réponses

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
     
    Bonjour,

    Ajoutes une colonne au 1er onglet avec une formule du type:
    =NB.SIEntreprises_du_2°_onglet;Entreprise)

    Puis tu filtres sur 0 et tu supprimes les lignes
    0
  2. sebj9 Messages postés 17 Statut Membre 5
     
    Merci de vos réponse mais j'ai essayé et la formule ne fonctionne pas !
    0
  3. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
     
    «la formule ne fonctionne pas» ???

    Ne serait-ce pas plutôt les noms des entreprises qui seraient libellés différemment ?

    Il faut que les noms soient identiques dans les 2 listes !

    Si ce n'est pas le cas, tu n'as plus qu'a supprimer les entreprises manuellement !
    0
  4. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
     
    Bonjour

    Utiliser =supprespace(a1) pour enlever les espaces parasites
    ou si vous avez un numéro fournisseur comparer sur les numéros
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. floap66 Messages postés 6 Statut Membre
     
    Bonsoir,

    Je vous propose cette macro. Essayez là en adaptant les plages de cellules à votre fichier.

    Sub suppression_entreprises()
    Dim rng_liste_ent, rng_critere, resultat, rng_ent As Range
    Dim ent_a_supp, ent As String

    Sheets(1).Activate
    Set rng_liste_ent = Range(Range("A2"), Range("A2").End(xlDown))
    Sheets(2).Activate
    If Range("A1").Offset(1, 0).Value <> "" Then
    Set rng_critere = Range(Range("A2"), Range("A2").End(xlDown))
    Else
    Set rng_critere = Range("A2")
    End If

    Sheets(1).Activate
    For Each cell In rng_liste_ent
    cell.Select
    Set rng_ent = ActiveCell
    ent = ActiveCell.Value
    Sheets(2).Activate
    Set resultat = rng_critere.Cells.Find(what:=ent, searchorder:=xlByRows, searchdirection:=xlNext)

    If resultat Is Nothing Then
    ent_a_supp = ent_a_supp & rng_ent.Address(0, 0) & ","
    End If

    Sheets(1).Activate
    Next cell

    Range(Left(ent_a_supp, Len(ent_a_supp) - 1)).Select
    Selection.EntireRow.Delete
    Range("A1").Select

    End Sub

    En espérant que cela puisse vous aider!
    N'hésitez pas si soucis.

    Bonne soirée
    0
  7. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
     
    Bonjour

    =NB.SI(Feuil1!$A$1:$A$100;Feuil2!$A1)
    ou A colonne des entreprises
    -1
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
       
      C'est plutôt l'inverse :
      =NB.SI(Feuil2!A:A;A2)
      sur la feuille 1 ou il faut supprimer les excédents
      0