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

Résolu/Fermé
chrisdemontigny Messages postés 64 Date d'inscription mercredi 19 septembre 2012 Statut Membre Dernière intervention 17 mars 2015 - Modifié par jordane45 le 23/11/2014 à 00:36
chrisdemontigny Messages postés 64 Date d'inscription mercredi 19 septembre 2012 Statut Membre Dernière intervention 17 mars 2015 - 25 nov. 2014 à 22:26
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 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
23 nov. 2014 à 00:18
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 mercredi 19 septembre 2012 Statut Membre Dernière intervention 17 mars 2015
25 nov. 2014 à 22:26
merci pour ta réponse.
C'est pas évident à assimiler pour un novice mais c'est clair au moins
0