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


A voir également:

6 réponses

Patrice33740 Messages postés 8930 Statut Membre 1 781
 
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
sebj9 Messages postés 17 Statut Membre 5
 
Merci de vos réponse mais j'ai essayé et la formule ne fonctionne pas !
0
Patrice33740 Messages postés 8930 Statut Membre 1 781
 
«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
PHILOU10120 Messages postés 6513 Date d'inscription   Statut Contributeur Dernière intervention   827
 
Bonjour

Utiliser =supprespace(a1) pour enlever les espaces parasites
ou si vous avez un numéro fournisseur comparer sur les numéros
0

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

Posez votre question
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
PHILOU10120 Messages postés 6513 Date d'inscription   Statut Contributeur Dernière intervention   827
 
Bonjour

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