Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Filtre avec plusieurs noms

3 réponses
Avatar
Denys
Bonjour =E0 tous,

Sur une feuille 1, j'ai en colonne A des noms d'employ=E9s (jusqu'=E0 150)
et en colonne B et suivantes (le nombre de colonnes varie) des volumes
selon la t=E2che accomplie.

Sur une feuille 2, toujours en colonne A, le superviseur peut =E9crire
des noms d'employ=E9s qui se retrouvent en feuille 1.

Je voudrais qu'en cliquant sur un bouton de commande qu'excel =E9limine
toutes les lignes de la feuille 1 ne correspondant pas aux noms =E9crits
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=E9e ?

Merci pour votre temps

Denys

3 réponses

Avatar
michdenis
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" a écrit dans le message de groupe de discussion :

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
Avatar
Denys
Bonjour Denis,

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

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

Merci encore pour ton temps

Denys
Avatar
Denys
Bonjour Denis,

Tout est parfait.... Merci beaucoup

Denys