XL 2021 Masquer ligne vba

NicolasKH

XLDnaute Junior
bonjour tout le monde
je n'arrive pas a cacher une ligne sous condition
j'ai dans la colonne L une formule =SI([@[Date de fin]]>AUJOURDHUI();"En Cour";"Terminer")

je desirerais que quand dans le colonne L est inscrit Terminer que cette meme ligne sois cacher automatiquement

voici mon code

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo err
If Not Intersect(Target, Range("L:L")) Is Nothing Then
If Target = "Terminer" Then
Rows(Target.Row).EntireRow.Hidden = True
MsgBox "Ligne " & Target.Row & " masquée"
End If
End If
Exit Sub
err:

End Sub

mais rien ne se passe

pouviez vous m'aider s'il vous plait car je suis un nul en vba
 

Pièces jointes

  • Planing Des Projets - Copie.xlsm
    27.9 KB · Affichages: 3
Solution
Bonjour @NicolasKH :),

J'ai modifié la formule : =SI([@[Date de fin]]>AUJOURDHUI();"En Cours";"Terminé")
Voir le code suivant:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xrg As Range, x
   If Range("a5").ListObject.ListRows.Count = 0 Then Exit Sub
   If Intersect(Target, Range("a5").ListObject.ListColumns("Date de fin").DataBodyRange) Is Nothing Then Exit Sub
   Application.ScreenUpdating = False
   Set xrg = Range("a5").ListObject.ListColumns("Etat").DataBodyRange
   For Each x In xrg.Cells: Rows(x.Row).EntireRow.Hidden = (x = "Terminé"): Next x
End Sub




.
merci mapomme pour ta reponse superb rapide et j'ai fais le test et tout fonctionne correctement comme je le desirais, je mets que...

mapomme

XLDnaute Barbatruc
Bonjour @NicolasKH :),

J'ai modifié la formule : =SI([@[Date de fin]]>AUJOURDHUI();"En Cours";"Terminé")
Voir le code suivant:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xrg As Range, x
   If Range("a5").ListObject.ListRows.Count = 0 Then Exit Sub
   If Intersect(Target, Range("a5").ListObject.ListColumns("Date de fin").DataBodyRange) Is Nothing Then Exit Sub
   Application.ScreenUpdating = False
   Set xrg = Range("a5").ListObject.ListColumns("Etat").DataBodyRange
   For Each x In xrg.Cells: Rows(x.Row).EntireRow.Hidden = (x = "Terminé"): Next x
End Sub




.
 

Pièces jointes

  • NicolasKH- Planing Des Projets- v1.xlsm
    41 KB · Affichages: 3

NicolasKH

XLDnaute Junior
Bonjour @NicolasKH :),

J'ai modifié la formule : =SI([@[Date de fin]]>AUJOURDHUI();"En Cours";"Terminé")
Voir le code suivant:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xrg As Range, x
   If Range("a5").ListObject.ListRows.Count = 0 Then Exit Sub
   If Intersect(Target, Range("a5").ListObject.ListColumns("Date de fin").DataBodyRange) Is Nothing Then Exit Sub
   Application.ScreenUpdating = False
   Set xrg = Range("a5").ListObject.ListColumns("Etat").DataBodyRange
   For Each x In xrg.Cells: Rows(x.Row).EntireRow.Hidden = (x = "Terminé"): Next x
End Sub




.
merci mapomme pour ta reponse superb rapide et j'ai fais le test et tout fonctionne correctement comme je le desirais, je mets que la reponse est resolu
 

Discussions similaires

Réponses
1
Affichages
285

Statistiques des forums

Discussions
315 134
Messages
2 116 608
Membres
112 804
dernier inscrit
padu