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
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 !
d'autre part, si maint'nant tout fonctionne correctement comme tu veux, c'est l'essentiel !
dhany