Erreur "EnableEvents" avec une liste de validation dynamique

Bonjour à tous,

Je rencontre un problème lorsque je sélectionne un élément dans une liste de validation située dans la colonne G d’un tableau structuré. Cette liste utilise la formule suivante :

=SI(G11<>"";DECALER(SousCategories;EQUIV(G11&"*";SousCategories;0)-1;;NB.SI(SousCategories;G11&"*");1);SousCategories)

Dès que je fais un choix dans la liste, j’obtiens l’erreur suivante :
« Une erreur s’est produite : La méthode ‹ EnableEvents › de l’objet ‹ _Application › a échoué. »

Le code VBA utilisé dans l’événement Worksheet_Change() est le suivant :

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo ErrorHandler
    
    If Target.Count > 1 Then Exit Sub
    
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    
    Select Case Target.Column
    Case COL_STATUT_DETTE
        Call UpdateDebtStatus(Target)
            
    Case COL_PAIEMENT
        Dim ws As Worksheet
        Dim description As String
            
        Set ws = ThisWorkbook.Worksheets("Paramètres")
        On Error Resume Next
        description = Application.WorksheetFunction.VLookup(Target.value, _
                                                            ws.Range("TbPaiement"), 2, False)
        On Error GoTo ErrorHandler
            
        If description <> "" Then
            With Target.Validation
                .InputTitle = "Mode de paiement"
                .InputMessage = description
                .ShowInput = True
            End With
        End If
    End Select

ExitSub:
    Application.ScreenUpdating = True
    Application.EnableEvents = True
    Exit Sub
    
ErrorHandler:
    MsgBox "Une erreur s'est produite : " & Err.description
    Resume ExitSub
End Sub

Le problème persiste quel que soit le nombre de clics sur le bouton « OK » de la boîte de dialogue d’erreur, et l’erreur continue de s’afficher en boucle, m’obligeant à redémarrer Excel.

Comment pourrais-je résoudre ce problème ?

Merci d’avance pour votre aide !

Erreurs_EnableEvents.xlsm (39,6 Ko)

je ne sais pas reproduire cette erreur,vous faites quoi exactement ?

Bonjour Cow18,

En fait, l’erreur ne se produit pas à chaque utilisation de la liste en colonne G. Je pense qu’elle pourrait être liée à la désactivation/réactivation de l’événement EnableEvents. Sinon, il faudrait peut-être revoir la gestion des erreurs pour mieux comprendre ce qui se passe.

Je ne comprends pas le but final, ne pensez-vous pas trop difficile ? Pouvez-vous vous expliquer ?

Parfois, la sélection d’un élément dans la liste de validation de la colonne G fonctionne sans problème, mais à d’autres moments, l’erreur :

Une erreur s’est produite : La méthode ‹ EnableEvents › de l’objet ‹ _Application › a échoué

survient immédiatement après la sélection.
Comment peut-on résoudre ce problème ?

Bonjour

En regardant votre souci et la date de votre dernier post, pourriez-vous me dire si votre problème est solutionné ou pas

Si oui, une question : vous mentionnez une feuille Paramètres dans le code mais elle n’est pas dans votre fichier.

Bonsoir djn,

J’ai effectué un nettoyage de certains tableaux créés dans la feuille Transactions, et l’erreur a disparu pour le moment. Cependant, je ne sais pas si elle réapparaîtra à l’avenir.

Concernant la feuille Paramètres, elle est bien présente dans le classeur d’origine, mais elle n’a pas été incluse dans cette copie de test.

Bonjour,

Dites moi si vous voulez que je regarde tout de même.

En premier j’aurais peut être supprimé la ligne On error goto errorhandler en première ligne ou alors la supprimer après la ligne description =…
ou la déplacer juste après la ligne Case COL_STATUT_DETTE
Tel quel la mettre après description est inutile

A vrai dire j’aurais écrit le code un peu autrement

Autre point : vos variables sont déclarées en LONG. C’est inutile vous pouvez les mettre toutes en BYTE.

Crdlt