Filtre avec plusieurs noms

Le
Denys
Bonjour à tous,

Sur une feuille 1, j'ai en colonne A des noms d'employés (jusqu'à 150)
et en colonne B et suivantes (le nombre de colonnes varie) des volumes
selon la tâche accomplie.

Sur une feuille 2, toujours en colonne A, le superviseur peut écrire
des noms d'employés qui se retrouvent en feuille 1.

Je voudrais qu'en cliquant sur un bouton de commande qu'excel élimine
toutes les lignes de la feuille 1 ne correspondant pas aux noms écrits
sur la feuille 2. Il se peut qu'il y ait 20, 40, voire 60 noms sur la
feuille 2, et cette plage sera changeant sur une base hebdomadaire.

Auriez-vous une idée ?

Merci pour votre temps

Denys
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #22592061
Bonjour,

Essaie ceci en adaptant le nom des feuilles :

Sheet2 = Feuil1
Sheet3 = Feuil2

Il est supposé que les noms en Feuil1 en colonne A:A n'ont pas de doublons
Si sur chaque feuille, tu as une ligne d'étiquette, tu débutes les plages de
cellules en A2...

'--------------------------------
Sub test()
Dim Rg As Range, Rg1 As Range
Dim A As Long, NbLignes As Long, X As Variant

'La feuille de la liste courte
With Worksheets("sheet3")
'si tu as une étiquette de colonne, débute en A2
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
End With

'La feuille de la liste longue (complète)
With Sheet2
'si tu as une étiquette de colonne, débute en A2
Set Rg1 = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
End With

'Nom de ligne dans la feuille complète
NbLignes = Rg1.Rows.Count

'En commençant par la fin, une boucle sur
'les 150 employés

For A = NbLignes To 1 Step -1
'Un test pour savoir si leur nom figure en Sheet3
X = Application.Match(Rg1(A, 1).Value, Rg, 0)
If IsError(X) Then
'Si erreur, le nom est absent dans Sheet3, suppression
Err = 0
'Suppression de la ligne complète
Rg1(A, 1).EntireRow.Delete xlUp
End If
Next
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
'--------------------------------

--
MichD
--------------------------------------------


"Denys"
Bonjour à tous,

Sur une feuille 1, j'ai en colonne A des noms d'employés (jusqu'à 150)
et en colonne B et suivantes (le nombre de colonnes varie) des volumes
selon la tâche accomplie.

Sur une feuille 2, toujours en colonne A, le superviseur peut écrire
des noms d'employés qui se retrouvent en feuille 1.

Je voudrais qu'en cliquant sur un bouton de commande qu'excel élimine
toutes les lignes de la feuille 1 ne correspondant pas aux noms écrits
sur la feuille 2. Il se peut qu'il y ait 20, 40, voire 60 noms sur la
feuille 2, et cette plage sera changeant sur une base hebdomadaire....

Auriez-vous une idée ?

Merci pour votre temps

Denys
Denys
Le #22592141
Bonjour Denis,

Merci beaucoup....pas évident !!!

Je regarde tout ça et te reviens là-dessus demain

Merci encore pour ton temps

Denys
Denys
Le #22595941
Bonjour Denis,

Tout est parfait.... Merci beaucoup

Denys
Publicité
Poster une réponse
Anonyme