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

supprimer des lignes ds une table en VBA

1 réponse
Avatar
nadis
Bonjour et bonne année,

je suis souhaite garder un maximum de 3 lignes par jour pour chaque
utilisateurs, voir exemple ci dessous

utilisateur journée tache
1 1 Y
1 2 N
1 2 Y
1 2 Y
1 2 z
1 4
1 6
1 0
1 0
1 0
1 0
1 0

comment supprimer les autres en VBA
merci de votre aide

1 réponse

Avatar
Hervé
Bonsoir Nadis,
Les numéros utilisateurs étant en colonne A. Je ne sais pas comment tu gère
les journées, alors, adapte. Toutes les lignes après les trois premières de
chaque utilisateur sont supprimées. Attention, Les numéros utilisateurs
doivent impérativement se suivre et il ne peu donc pas y avoir plus d'une
plage pour chaque utilisateur dans la colonne, sinon, toutes les lignes
entre seront supprimées (moins trois bien sûr) De toute façon, fais un test
sur une copie de ton classeur :

Sub QueTrois()
Dim LaPlage As Range
Dim Tbl
Dim I As Integer, J As Integer
'tableau de numéro d'utilisateur recherché (en colonne A)
Tbl = Array(1, 2, 3, 4) 'etc...
For I = 0 To UBound(Tbl)
'gère l'erreur de la recherche infructueuse
On Error Resume Next
Set LaPlage = Plage(ActiveSheet, Tbl(I))
'supprime toutes les lignes
'après les trois premières de la plage
For J = LaPlage.Count To 4 Step -1
LaPlage(J).EntireRow.Delete
Next J
Next I
Erase Tbl
Set LaPlage = Nothing
End Sub


Function Plage(Fe As Worksheet, Valeur) As Range
With Fe
Set Plage = .Range(.Cells.Find(Valeur, .[A1], , 1, 1), _
.Cells.Find(Valeur, .[A65536], , , 2, 2))
End With
End Function

Hervé.

"nadis" a écrit dans le message de news:

Bonjour et bonne année,

je suis souhaite garder un maximum de 3 lignes par jour pour chaque
utilisateurs, voir exemple ci dessous

utilisateur journée tache
1 1 Y
1 2 N
1 2 Y
1 2 Y
1 2 z
1 4
1 6
1 0
1 0
1 0
1 0
1 0

comment supprimer les autres en VBA
merci de votre aide