Je ne comprends pas une partie d'un code avec la méthode find

Résolu
chrisdemontigny Messages postés 64 Date d'inscription   Statut Membre Dernière intervention   -  
chrisdemontigny Messages postés 64 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:
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
A voir également:

2 réponses

eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
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
0
chrisdemontigny Messages postés 64 Date d'inscription   Statut Membre Dernière intervention  
 
merci pour ta réponse.
C'est pas évident à assimiler pour un novice mais c'est clair au moins
0