Je ne comprends pas une partie d'un code avec la méthode find
Résolu
chrisdemontigny
Messages postés
70
Date d'inscription
Statut
Membre
Dernière intervention
-
chrisdemontigny Messages postés 70 Date d'inscription Statut Membre Dernière intervention -
chrisdemontigny Messages postés 70 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai récupéré un code sur un autre site qui marche très bien : mon but était de supprimer toutes les lignes de l'onglet ("Listedestâches") où était marqué "fini" dans la colonne K ; voici donc le code ci-dessous:
Mon seul hic est que je ne comprends pas " l = Rg.Row + (Rg.Row > 1)".
Merci de votre aide par avance
EDIT : Ajout des balises de code
j'ai récupéré un code sur un autre site qui marche très bien : mon but était de supprimer toutes les lignes de l'onglet ("Listedestâches") où était marqué "fini" dans la colonne K ; voici donc le code ci-dessous:
Sub supprimer()
nomFeuilleActive = ActiveSheet.Name
Sheets("Listedestâches").Activate
Application.ScreenUpdating = False
With Worksheets("Listedestâches").Columns(11)
Set Rg = .Find("fini", , xlValues, xlWhole)
Do Until Rg Is Nothing
l = Rg.Row + (Rg.Row > 1)
Rg.EntireRow.Delete
Set Rg = .FindNext(.Cells(l))
Loop
End With
Application.ScreenUpdating = True
End Sub
Mon seul hic est que je ne comprends pas " l = Rg.Row + (Rg.Row > 1)".
Merci de votre aide par avance
EDIT : Ajout des balises de code
2 réponses
-
Bonjour,
(Rg.Row > 1) te donnera toujours TRUE sauf pour la ligne 1.
Et TRUE= -1
Donc l = Rg.Row + (Rg.Row > 1) est équivalent à l = Rg.Row - 1 sauf pour la ligne 1 (ce qui évite de se retrouver avec une ligne 0 que vba n'aimerait pas du tout.
eric
-
merci pour ta réponse.
C'est pas évident à assimiler pour un novice mais c'est clair au moins