Es-t'il possible d'écrire autrement le code suivant afin d'en améliorer sa
durée d'execution ? (je suis débutant, pardon d'avance pour les programmeurs
qui vont lire mon code)
Private Sub Worksheet_Change(ByVal Target As Range)
'Exit Sub
If Not Intersect(Range("D3:D5"), Target) Is Nothing Then
Application.ScreenUpdating = False
With F2
Rows("10:538").EntireRow.Hidden = False
Set d = .Range("D10:D538")
For Each e In d
If e.Value = "" Then
e.EntireRow.Hidden = True
Else
e.EntireRow.Hidden = False
End If
Next
End With
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daniel
Bonjour. tu peux utiliser : Range("D10:D538").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True si les cellules sont vides ou tu peux retirer : Else e.EntireRow.Hidden = False mais sur une petite plage de cellules, le gain doit être minime. Cordialement. Daniel "coco74" a écrit dans le message de news: %
Bonjour à tous,
Es-t'il possible d'écrire autrement le code suivant afin d'en améliorer sa durée d'execution ? (je suis débutant, pardon d'avance pour les programmeurs qui vont lire mon code)
Private Sub Worksheet_Change(ByVal Target As Range) 'Exit Sub If Not Intersect(Range("D3:D5"), Target) Is Nothing Then Application.ScreenUpdating = False With F2 Rows("10:538").EntireRow.Hidden = False Set d = .Range("D10:D538")
For Each e In d If e.Value = "" Then e.EntireRow.Hidden = True Else e.EntireRow.Hidden = False End If Next End With
Application.ScreenUpdating = True End If
End Sub
Merci pour votre aide
Bonjour.
tu peux utiliser :
Range("D10:D538").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
si les cellules sont vides
ou tu peux retirer :
Else
e.EntireRow.Hidden = False
mais sur une petite plage de cellules, le gain doit être minime.
Cordialement.
Daniel
"coco74" <coco74@prestim.fr> a écrit dans le message de news:
%23tyYTKryGHA.476@TK2MSFTNGP06.phx.gbl...
Bonjour à tous,
Es-t'il possible d'écrire autrement le code suivant afin d'en améliorer sa
durée d'execution ? (je suis débutant, pardon d'avance pour les
programmeurs qui vont lire mon code)
Private Sub Worksheet_Change(ByVal Target As Range)
'Exit Sub
If Not Intersect(Range("D3:D5"), Target) Is Nothing Then
Application.ScreenUpdating = False
With F2
Rows("10:538").EntireRow.Hidden = False
Set d = .Range("D10:D538")
For Each e In d
If e.Value = "" Then
e.EntireRow.Hidden = True
Else
e.EntireRow.Hidden = False
End If
Next
End With
Bonjour. tu peux utiliser : Range("D10:D538").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True si les cellules sont vides ou tu peux retirer : Else e.EntireRow.Hidden = False mais sur une petite plage de cellules, le gain doit être minime. Cordialement. Daniel "coco74" a écrit dans le message de news: %
Bonjour à tous,
Es-t'il possible d'écrire autrement le code suivant afin d'en améliorer sa durée d'execution ? (je suis débutant, pardon d'avance pour les programmeurs qui vont lire mon code)
Private Sub Worksheet_Change(ByVal Target As Range) 'Exit Sub If Not Intersect(Range("D3:D5"), Target) Is Nothing Then Application.ScreenUpdating = False With F2 Rows("10:538").EntireRow.Hidden = False Set d = .Range("D10:D538")
For Each e In d If e.Value = "" Then e.EntireRow.Hidden = True Else e.EntireRow.Hidden = False End If Next End With