XL 2016 VAB : Masquer les lignes si la cellule en J contient "clôturée"

daviddemetz72

XLDnaute Nouveau
Bonjour,
J'essaye d'accélérer le code pour masquer les lignes de mon tableau si la dans la colonne J ( à partir de J20) contient le mot "clôturée"
voici mon code qui fonctionne mais je le trouve lent
une bonne âme charitable pour m'aider à comprendre mon erreur

Sub Hide_cloture()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long

' Spécifiez le nom de votre feuille de calcul
Set ws = ThisWorkbook.Sheets("FA")

' Détermine la dernière ligne avec la valeur "clôturée" dans la colonne J
lastRow = ws.Cells(ws.Rows.count, "H").End(xlUp).Row

' Parcours les lignes de J20 à la dernière ligne
For i = 20 To lastRow
' Vérifie si la valeur dans la colonne J est "Clôturée"
If ws.Cells(i, "H").Value = "Clôturée" Then
' Masque la ligne si la condition est satisfaite
ws.Rows(i).EntireRow.Hidden = True

End If

Next i

End Sub
 
Solution
Bonjour DavidDeMetz, Gégé,
J'ai un petit souci :
' Vérifie si la valeur dans la colonne J est "Clôturée"
If ws.Cells(i, "H").Value = "Clôturée" Then
C'est J ou H qu'il faut analyser ? :)

En prenant J, essayez ceci :
VB:
Sub MasqueCôturées()
Application.ScreenUpdating = False
DL = Cells(Cells.Rows.Count, "J").End(xlUp).Row
Columns("J:J").AutoFilter
ActiveSheet.Range("J20:J" & DL).AutoFilter Field:=1, Criteria1:="<>*Clôturée*", Operator:=xlAnd
End Sub

Gégé-45550

XLDnaute Accro
Bonjour,
J'essaye d'accélérer le code pour masquer les lignes de mon tableau si la dans la colonne J ( à partir de J20) contient le mot "clôturée"
voici mon code qui fonctionne mais je le trouve lent
une bonne âme charitable pour m'aider à comprendre mon erreur

Sub Hide_cloture()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long

' Spécifiez le nom de votre feuille de calcul
Set ws = ThisWorkbook.Sheets("FA")

' Détermine la dernière ligne avec la valeur "clôturée" dans la colonne J
lastRow = ws.Cells(ws.Rows.count, "H").End(xlUp).Row

' Parcours les lignes de J20 à la dernière ligne
For i = 20 To lastRow
' Vérifie si la valeur dans la colonne J est "Clôturée"
If ws.Cells(i, "H").Value = "Clôturée" Then
' Masque la ligne si la condition est satisfaite
ws.Rows(i).EntireRow.Hidden = True

End If

Next i

End Sub
Bonjour,
Essayez avec un tableau structuré et un filtre sur la colonne J excluant la valeur "clôturée".
Cordialement,
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour DavidDeMetz, Gégé,
J'ai un petit souci :
' Vérifie si la valeur dans la colonne J est "Clôturée"
If ws.Cells(i, "H").Value = "Clôturée" Then
C'est J ou H qu'il faut analyser ? :)

En prenant J, essayez ceci :
VB:
Sub MasqueCôturées()
Application.ScreenUpdating = False
DL = Cells(Cells.Rows.Count, "J").End(xlUp).Row
Columns("J:J").AutoFilter
ActiveSheet.Range("J20:J" & DL).AutoFilter Field:=1, Criteria1:="<>*Clôturée*", Operator:=xlAnd
End Sub
 
Dernière édition:

daviddemetz72

XLDnaute Nouveau
Bonjour DavidDeMetz, Gégé,
J'ai un petit souci :

C'est J ou H qu'il faut analyser ? :)

En prenant J, essayez ceci :
VB:
Sub MasqueCôturées()
Application.ScreenUpdating = False
DL = Cells(Cells.Rows.Count, "J").End(xlUp).Row
Columns("J:J").AutoFilter
ActiveSheet.Range("J20:J" & DL).AutoFilter Field:=1, Criteria1:="<>*Clôturée*", Operator:=xlAnd
End Sub
Bonjour Sylvanu

c'est bien H la colonne :-(
votre code marche à merveille, super rapide à l'exécution

j'avais évité de passer par un filtre mais pourquoi pas :)
 

Statistiques des forums

Discussions
312 209
Messages
2 086 274
Membres
103 168
dernier inscrit
isidore33