Bonjour à toutes et à tous,
Je débute un peu dans le VBA et je rencontre un problème dans ma macro.
Voici le sujet:
Je dispose d'un tableau d'environ 12000 lignes et 30 colonnes sur la feuille 1.
Dans la colonne "J", j'ai une liste de personnes (environ 200) (nom et prénom dans la même cellule).
Dans la feuille 2, j'ai un tableau avec une liste de personnes (15).
Je souhaiterai supprimer dans la feuille 1 toutes les lignes dont la cellule "J" ne soit pas l'une des personnes de la liste en feuille 2.
Voici ce que j'ai actuellement, mais qui ne fonctionne pas...
Sub DeleteRowNoInclude()
Dim xRow As Range
Dim rng As Range
Dim WorkRng As Range
Dim xStr As Range
On Error Resume Next
xTitleId = "Suppression de lignes"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Zone a analyser", xTitleId, WorkRng.Address, Type:=8)
xStr = Application.InputBox("Preparateur a supprimer", xTitleId, "", Type:=2)
Application.ScreenUpdating = False
For i = WorkRng.Rows.Count To 1 Step -1
Set xRow = WorkRng.Rows(i)
Set rng = xRow.Find(xStr, LookIn:=xlValues)
If rng Is Nothing Then
Application.DisplayAlerts = False
Rows(i).Select
Selection.Delete
'xRow.Delete
Application.DisplayAlerts = True
End If
Next
Application.ScreenUpdating = True
End Sub
L' avantage de mon code, c'est que la macro m'ouvre dans un premier temps une fenêtre qui me permet de sélectionner la zone à analyser (je sélectionne alors les 12000 lignes de la colonne J) puis une deuxième fenêtre me permettant de sélectionner la liste des 15 personnes à conserver. Mais je n'ai absolument pas le résultat attendu...
Merci d'avance pour votre aide et bonne journée.