Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Optimisation de code pour éxécution plus rapide

  • Initiateur de la discussion Initiateur de la discussion treza88
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

treza88

XLDnaute Occasionnel
Bonjour a tous,

Je vous sollicite pour voir si il y a une solution pour rendre plus rapide l’exécution d'une commande de masquage de ligne en fonction d'une cellule contenant un Zéro ou pas.
Le code ci dessous fonctionne, mais comme la feuille comporte un peu moins de 400 lignes le code si dessous est un peu lent a s’exécuter.
Existe t il un autre code plus rapide?


Code:
Sub masque_0()
  Application.Calculation = xlCalculationManual
  Dim i As Integer
   
  If ActiveSheet.Index = 1 Then

  For i = 8 To Range("E65536").End(xlUp).Row
  If Cells(i, 7).Value = 0 Then
  Cells(i, 7).EntireRow.Hidden = True
  End If
  Next i
   
  ElseIf ActiveSheet.Index = 6 Then
  For i = 3 To Range("D65536").End(xlUp).Row
  If Cells(i, 5).Value = 0 Then
  Cells(i, 5).EntireRow.Hidden = True
  End If
  Next i
   
  ElseIf ActiveSheet.Index = 6 Then
  For i = 3 To Range("D65536").End(xlUp).Row
  If Cells(i, 4).Value = 0 Then
  Cells(i, 4).EntireRow.Hidden = True
  End If
  Next i
   
  Else
  For i = 5 To Range("D65536").End(xlUp).Row
  If Cells(i, 6).Value = 0 Then
  Cells(i, 6).EntireRow.Hidden = True
  End If
  Next i
   
  End If

Merci d'avance.
 
Hello
un essai avec ce code

VB:
Sub masque_0()
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Dim i As Integer

Select Case ActiveSheet.Index
    Case 1
        For i = 8 To Range("E65536").End(xlUp).Row
            Cells(i, 7).EntireRow.Hidden = (Cells(i, 7).Value = 0)
       Next i
 
    Case 6
        For i = 3 To Range("D65536").End(xlUp).Row
            Cells(i, 5).EntireRow.Hidden = ((Cells(i, 5).Value = 0) Or (Cells(i, 4).Value = 0))
        Next i
 
    Case Else
        For i = 5 To Range("D65536").End(xlUp).Row
            Cells(i, 6).EntireRow.Hidden = (Cells(i, 6).Value = 0)
        Next i
End Select

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = true
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
700
Réponses
10
Affichages
525
Réponses
2
Affichages
422
Réponses
4
Affichages
574
Réponses
2
Affichages
181
Réponses
5
Affichages
474
Réponses
8
Affichages
269
Réponses
8
Affichages
645
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…