Macro très très lente

Bonjour à tous

pourriez-vous m'aider...

j'ai cette macro qui fait ce que je veux, masquer ou afficher des lignes... sur 4 feuilles.

le problème c'est qu'elle est très lente et qu'à chaque changement d'état je vois des pics de proc à 100% sur mon i7... peut elle être optimisée ? ou est-ce normal ?

merci d'avance

Private Sub Worksheet_Change(ByVal Target As Range)

Dim i As Integer

Dim j As Integer

Dim sh As Worksheet

Application.ScreenUpdating = False

For i = 8 To 108

For Each sh In ThisWorkbook.Worksheets

If sh.Name <> "Réglages" Then

If Sheets("Réglages").Range("D" & i) Like "Visible" Then sh.Rows(i - 1).Hidden = False

If Sheets("Réglages").Range("D" & i) Like "Non visible" Then sh.Rows(i - 1).Hidden = True

If Sheets("Réglages").Range("D" & i) Like "Visible" Then sh.Rows(i + 105).Hidden = False

If Sheets("Réglages").Range("D" & i) Like "Non visible" Then sh.Rows(i + 105).Hidden = True

End If

Next sh

Next i

For j = 57 To 109

For Each sh In ThisWorkbook.Worksheets

If sh.Name <> "Réglages" Then

If Sheets("Réglages").Range("D" & j) Like "Visible" Then sh.Rows(j + 167).Hidden = False

If Sheets("Réglages").Range("D" & j) Like "Non visible" Then sh.Rows(j + 167).Hidden = True

End If

Next sh

Next j

Application.ScreenUpdating = True

End Sub

Bonjour,

utilise la balise </> pour produire le code et indente ce dernier

ce n'est sans doute pas pertinent d'exécuter la macro à chaque changement, fais un test sur target.row

bloque les événements pendant la procédure (enablevents=false)

si besoin, mets un fichier exemple épuré

Rechercher des sujets similaires à "macro tres lente"