Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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" <nadis@discussions.microsoft.com> a écrit dans le message de news:
D2EC01CE-F026-4A6F-B579-A40C35D64153@microsoft.com...
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
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