Cacher ligne automatiquement

Bonsoir,

Je souhaiterais cacher automatiquement des lignes selon la valeur que certaines cellules peuvent avoir. J'ai fais des recherches et essayé un code mais pour l'instant, cela ne fonctionne pas. Ai-je fais quelque chose de faux?

Private Sub Worksheet_Change(ByVal Target As Range)
 Application.EnableEvents = True
 Application.ScreenUpdating = False

           If LCase(Range("CellName").Value) = "The student has good grades" Then
                Range("T1").EntireRow.Hidden = True
          End if
 Application.EnableEvents = True         
End Sub
            

Merci d'avance et bonne soirée !

Bonsoir lejack02,

La 1ère ligne de ta sub devrait être : Application.EnableEvents = False

Ton instruction de masquage de ligne est correcte, mais comme c'est

pour la cellule T1, ceci est plus simple : Rows(1).Hidden = True

Pour ton instruction de test, y'a contradiction entre LCase (en minuscules) et le T majuscule de "The" !

(donc le test de comparaison ne pouvait jamais être vrai !)

If LCase$(Range("CellName")) = "the student has good grades" Then


enfin, tu peux mettre le test et son action en une seule ligne :

If LCase$(Range("CellName")) = "the student has good grades" Then Rows(1).Hidden = True

alors comme ça tu veux masquer tous les bons élèves ? bon, ça doit être pa'c'que tu veux voir que les mauvais !

pour pouvoir mieux les mettre en retenue (heures de colles) ou convoquer les parents ?


si c'est ok : merci de passer le sujet le sujet en résolu.

sinon : vérifie les données de ta feuille.

dhany

Bonjour dhany,

Merci beaucoup pour ta réponse

En fait je souhaite cacher les cours supplémentaires qu'ils devraient prendre pendant la période estivale

J'aurais du préciser que "T1" n'est pas la cellule T1 mais le nom d'une cellulle nommé ou d'une plage selon les endroits. Donc je pensais conserver la 2ème partie "Entirerow.Hidden" pour que je puisse l'appliquer de manière dynamique.

Le soucis étant que les majuscules au début des phrases sont nécessaires sur ce fichier y'a t il un moyen d'avoir un "LCase" qui s'applique aussi aux majuscules? Merci beaucoup !

Edit: J'ai enlevé le Lcase et cela semble fonctionner

Bonjour lejack02,

j'ai vu ton message avant qu'tu l'modifies ; j'voulais t'répondre ceci : mon test du message d'hier à 20:42 était :

If LCase$(Range("CellName")) = "the student has good grades" Then

LCase$() met en minuscules, oui, mais comme c'est juste pour le test, ça change pas la valeur de Range("CellName") qui peut rester avec toutes les majuscules que tu veux ! mais attention : la chaîne de caractères à droite du signe "=" doit être entièrement en minuscules ; ou si à droite c'est aussi une variable, tu peux utiliser LCase$() pour cette variable aussi.


d'autre part, si maint'nant tout fonctionne correctement comme tu veux, c'est l'essentiel !

dhany

Rechercher des sujets similaires à "cacher ligne automatiquement"