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

La macro tourne indéfiniment

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 !

Victor21

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous.

Cette macro ne s'arrête pas, et aucun message d'erreur ne s'affiche :
Code:
Private Sub Worksheet_Calculate()

    On Error GoTo Worksheet_Calculate_Error

    Application.ScreenUpdating = False

    With Worksheets("Feuil1").Range("B1:C1")
        .AutoFilter field:=1, Criteria1:="x", VisibleDropDown:=1    '1 = vrai
        .AutoFilter field:=2, Criteria1:="<>x", VisibleDropDown:=1
    End With
    
    'Application.ScreenUpdating = True

    On Error GoTo 0
    Exit Sub

Worksheet_Calculate_Error:
    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure Worksheet_Calculate of Document VBA Feuil1"

End Sub

Si l'un d'entre vous pouvait m'expliquer pourquoi :
1° Le screenUpdating n'empêche pas le clignotement,
2° la macro tourne indéfiniment.

D'avance, merci.
 

Pièces jointes

Re : La macro tourne indéfiniment

Bonjour,
Corriger en ajoutant .AutoFilter
Code:
    With Worksheets("Feuil1").Range("B1:C1")
        .AutoFilter
        .AutoFilter Field:=1, Criteria1:="x", VisibleDropDown:=1     '1 = vrai
        .AutoFilter Field:=2, Criteria1:="<>x", VisibleDropDown:=1
    End With
 
Re : La macro tourne indéfiniment

Bonjour Victor

Probleme classique de la macro qui modifie la feuille et provoque a nouveau la macro qui modifie lafeuille et provoque....

Modifie la comme suit:

Code:
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
    On Error GoTo Worksheet_Calculate_Error
    Application.ScreenUpdating = False
    With Worksheets("Feuil1").Range("B1:C1")
        .AutoFilter field:=1, Criteria1:="x", VisibleDropDown:=1    '1 = vrai
        .AutoFilter field:=2, Criteria1:="<>x", VisibleDropDown:=1
    End With
    Application.ScreenUpdating = True
    On Error GoTo 0
Application.EnableEvents = True
    Exit Sub
Worksheet_Calculate_Error:
    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure Worksheet_Calculate of Document VBA Feuil1"
End Sub
 
Re : La macro tourne indéfiniment

Bonsoir, hippolite, pierrejean.

Merci, pierrejean.

Effectivement, avec Application.EnableEvents = False, puis True, tout fonctionne parfaitement.

Cela signifie-t-il que l'application d'un filtre génère le recalcul de la feuille (Pas de sous.total dans la feuille).

Cordialement,
 
Re : La macro tourne indéfiniment

Bonsoir le fil, bonsoir le forum,

Puis-je me permettre mon cher PierreJean de rajouter une ligne à ton code. En cas d'erreur remerttre Application.EnableEvents = True. ce qui donne :
Code:
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
    On Error GoTo Worksheet_Calculate_Error
    Application.ScreenUpdating = False
    With Worksheets("Feuil1").Range("B1:C1")
        .AutoFilter field:=1, Criteria1:="x", VisibleDropDown:=1    '1 = vrai
        .AutoFilter field:=2, Criteria1:="<>x", VisibleDropDown:=1
    End With
    Application.ScreenUpdating = True
    On Error GoTo 0
Application.EnableEvents = True
    Exit Sub
Worksheet_Calculate_Error:
    Application.EnableEvents = True
    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure Worksheet_Calculate of Document VBA Feuil1"
End Sub
Pour autoriser à nouveau le fonctionnement des macros événementielles en cas de plantage...
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…