Masquer des lignes au-dessus d'une ligne contenant un mot

Bonjour tout le monde,

Un grand merci d'avance pour votre aide.

Dans ma macro, lorsque je clique sur une case à cocher, la ligne 50 est masquée.

If CheckBox1.Value = True Then Rows("50").EntireRow.Hidden = True Else Rows("50").EntireRow.Hidden = False

Mon problème est que si d'autres personnes insèrent des lignes au-dessus de la ligne 50, la macro ne fonctionne logiquement plus.

Je voudrais donc plutôt cacher cette ligne en fonction d'un élément plus stable comme la présence d'un mot dans la ligne du dessous.

Mon idée :

si la case est cochée, alors masquer la ligne qui se trouve au dessus de la ligne dont une cellule contient le mot "fin".

Est-ce possible ainsi ?

Hello,

Très bon réflexe de chercher un élément plus stable.

Ben tu peux faire une boucle qui va chercher le mots "fin"

Teste un truc de ce style.

Dim ws As Worksheet

Set ws = ActiveSheet

If CheckBox1.Value = True then

    For i = 1 To 10
        If ws.Cells(i, 1).Value = "fin" Then

            Rows(i + 1).EntireRow.Hidden = True

        End If
    Next i

end if

Allo nonesofar13,

Merci bcp pour ta réponse.

Il y a de quoi que je dois faire de pas correct car ça ne passe pas, bien que je n'ai pas de message d'erreur.

Est-ce que tu pourrais, ou une autre âme charitable, jeter un oeil sur mon essai ?

Merci !

16test.xlsm (19.08 Ko)

Hello caribou,

Le bonjour au Québec !!

Voila la réponse à ton problème en PJ.

A+

22test-v2.xlsm (19.53 Ko)

Magnifique :')

Un grand merci !

Pour info.

Private Sub CheckBox1_Click()

Call hide(5) 'change le chiffre entre parenthèse en fonction de la colonne ou se trouve le mot fin.
Call hide(12) 'change le chiffre entre parenthèse en fonction de la colonne ou se trouve le mot fin.

End Sub
Rechercher des sujets similaires à "masquer lignes dessus ligne contenant mot"