recherche multi critere

cindy75015

XLDnaute Junior
bonjour
je recherche un code vba pour effectuer ceci
rechercher dans la plage A1:D500 de la feuille 2 la ligne qui contient le contenu de la celule A1,B1 et C1 de la feuille 1 si excel le trouve supprimer cette ligne sinon afficher un message aucune données trouvé
exemple en
A1"paul"
B1"dubuis"
C1"M"
si ces 3 infos se trouve sur la même ligne dans la plage A1:D500 de la feuille 2 alors supprimer cette ligne sinon afficher le message "aucune donnée trouvé
merci Cindy
 

job75

XLDnaute Barbatruc
Re : recherche multi critere

Bonjour cindy75015,

Placez cette macro où vous voulez (Alt+F11) et exécutez-la :

Code:
Sub Supprimer()
Application.ScreenUpdating = False
With Feuil1 'CodeName de la feuille
  .[A1].Name = "cible1"
  .[B1].Name = "cible2"
  .[C1].Name = "cible3"
End With
With Feuil2 'CodeName de la feuille
  .[E:E].Insert 'colonne auxiliaire
  .[E1:E500].FormulaR1C1 = "=LN(COUNTIF(RC1:RC4,cible1)*COUNTIF(RC1:RC4,cible2)*COUNTIF(RC1:RC4,cible3))"
  On Error Resume Next
  .[E1:E500].SpecialCells(xlCellTypeFormulas, 1).EntireRow.Delete
  .[E:E].Delete
End With
Application.ScreenUpdating = True
If Err Then MsgBox "Aucune donnée trouvée..."
End Sub
A+
 

job75

XLDnaute Barbatruc
Re : recherche multi critere

Re,

On peut utiliser la dernière colonne de la feuille comme colonne auxiliaire, c'est plus simple :

Code:
Sub Supprimer()
With Feuil1 'CodeName de la feuille
  .[A1].Name = "cible1"
  .[B1].Name = "cible2"
  .[C1].Name = "cible3"
End With
With Feuil2.Cells(1, Columns.Count).Resize(500) 'CodeName de la feuille
  .FormulaR1C1 = "=LN(COUNTIF(RC1:RC4,cible1)*COUNTIF(RC1:RC4,cible2)*COUNTIF(RC1:RC4,cible3))"
  On Error Resume Next
  .SpecialCells(xlCellTypeFormulas, 1).EntireRow.Delete
  .ClearContents
End With
If Err Then MsgBox "Aucune donnée trouvée..."
End Sub
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 464
Messages
2 088 649
Membres
103 903
dernier inscrit
chrisbe