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

La déclaration de la procédure ne correspond pas à la description de l'événement

ckoebel5

XLDnaute Junior
Bonjour,
je travaille depuis un certain temps sur un fichier excel qui permet de gérer mes classes de collège et que je modifie quotidiennement, aussi j'en fais des sauvegardes régulières et des copies.
J'essaye aussi d'en améliorer le code et de le compléter selon mes besoins.
J'ai actuellement un problème qui me dépasse et je n'en vois pas la solution malgré des recherches sur cet excellent forum qui m'en apprend tous les jours.
A l'ouverture de mon fichier, il y a invariablement le message d'erreur : " La déclaration de la procédure ne correspond pas à la description de l'événement ou de la procédure de même nom", je n'avais encore jamais rencontré ce message et surtout je n'avais pas touché à la programmation depuis un certain temps donc pour moi ce message intervient pour des raisons obscures puisque le fichier fonctionnait encore très bien hier. Le message pointe sur cette procédure événementielle:

Code:
Private Sub LvwRésultClasse_ItemCheck(ByVal Item As MSComctlLib.ListItem)
If autrecomp Then Exit Sub
Call CheckouDéchek("UfSélABCD", Comp, Item.Index)
End Sub

J'ai fais quelques expériences :
1) Lorsque j'ouvre un ancien fichier (version plus ancienne) , il n'y a aucun message d'erreur et pourtant la procédure est strictement la même.
2) Lorsque j'ouvre le références VBA Project, les références des deux fichiers sont identiques (voir pièce jointe)
3) Lorsque je supprime la procédure événementielle en question, le fichier s'ouvre sans message mais au premier click le même message survient en pointant une autre procédure

Code:
Private Sub VueDev_ItemCheck(ByVal Item As MSComctlLib.ListItem)
Dim j As Integer, n As Long, codeSout As String, listCode As String


If autre = False Then Exit Sub
If Me.LbxLstDevoirs.ListIndex > 0 Then
    'MsgBox Item.Index
    
    codeSout = "S" & Me.LbxLstDevoirs.ListIndex
    listCode = FDevoirs.Cells(déb - 1, colclasse + Item.Index - 1).Value
    j = InStr(1, listCode, codeSout)
    If j > 0 Then  'revient à dire : if item.checked=true
        listCode = Left$(listCode, j - 1) & Mid$(listCode, j + Len(codeSout))
    Else
        listCode = listCode & codeSout
    End If
    'MsgBox listCode
    FDevoirs.Cells(déb - 1, colclasse + Item.Index - 1).Value = listCode
End If
End Sub



Je ne sais pas si MSComctlLib est la source du problème, mais le fichier précédent (ancienne version) fonctionne sur la même bécane et j'aimerais vraiment comprendre mon problème.

Quelqu'un aurait-il la clé ?
Merci beaucoup à ce forum sans lequel mon projet n'existerait pas.

Cordialement,

Christophe
 

Pièces jointes

  • Capture d’écran (68).jpg
    45.3 KB · Affichages: 83
Dernière édition:

Victor21

XLDnaute Barbatruc
Re : La déclaration de la procédure ne correspond pas à la description de l'événement

Bonjour, Christophe.

[...]Quelqu'un aurait-il la clé ?[...]
Elle se situe probablement dans votre fichier, mais sans celui-ci, comment voulez-vous que nous vous aidions à la chercher ?
Rappel après vos 80 messages :
 

Si...

XLDnaute Barbatruc
Re : La déclaration de la procédure ne correspond pas à la description de l'événement

salut

une capture d'écran en réponse...
 

Pièces jointes

  • Oups.jpg
    44.6 KB · Affichages: 114
  • Oups.jpg
    44.6 KB · Affichages: 103

ckoebel5

XLDnaute Junior
Re : La déclaration de la procédure ne correspond pas à la description de l'événement

Merci à vous deux pour votre tentative d'aide.
à SI... : non le problème ne vient pas de là, j'ai juste oublié le retour à la ligne après avoir supprimé le commentaire sur la procédure.
à Victor : Je ne parviens pas à réduire mon fichier (3 Mo) de façon assez substantielle pour le joindre au message, et c'est très chronophage donc sincèrement désolé.
Mon problème a disparu sans raison apparente... ce qui ne me rassure guère, il pourrait très bien resurgir de façon impromptue et il ne me plait pas de ne pas maîtriser ce qui se passe....

Mais merci à vous! Et longue vie à ce super forum!

Cordialement,

Christophe
 
Dernière édition:

ckoebel5

XLDnaute Junior
Re : La déclaration de la procédure ne correspond pas à la description de l'événement

Bonjour,
Mon problème n'a finalement pas disparu, j'ai toujours le même message d'erreur "La déclaration de la procédure ne correspond pas à la description de l'événement..." lorsque j'appuis sur certains boutons (qui n'ont d'ailleurs rien à voir avec la procédure sélectionnée par le gestionnaire d'erreurs:

Code:
Private Sub LvwListComp_ItemCheck(ByVal Item As MSComctlLib.ListItem)
Dim Compét As String, ColonneComp As Long, car As String, code As Range, L As Integer

If autre Then Exit Sub
Compét = Item.Text
L = LignC + Me.LbxListElv.ListIndex
ColonneComp = Sheets("Base annuelle").Range("CodCompStr").Find(what:=Compét).Column
Set code = Sheets("Base annuelle").Cells(L, ColonneComp)


car = Left$(code.Value, 1)


    If car = "!" Then  'revient à dire : if item.checked=true on vient de déchecker
         code.Value = "r" & Mid$(code.Value, 2)
    ElseIf car = "r" Then
         code.Value = "!" & Mid$(code.Value, 2)
    Else
        code.Value = "!" & code.Value
    End If


End Sub

Je ne comprends pas ce qu'il se passe d'autant que je n'avais rien modifié dans la programmation et que cela fonctionnait pendant des mois et encore très bien la semaine dernière...

Il y a clairement un soucis avec les ItemCheck. Quelqu'un a-t-il déjà rencontré ce type de problèmes ?
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : La déclaration de la procédure ne correspond pas à la description de l'événement

Bonsoir,

Oui j'ai déjà rencontré ce problème quand la déclaration d'une procédure évènement ne correspondait pas à la description de l'évènement. Autrement dit quand j'avais par exemple ajouté un paramètre à une instruction Event dans un module de classe et que j'ai oublié de l'ajouter dans la procédure évènement de ma classe utilisatrice. Le mieux pour garantir que ça correspond toujours c'est de ne les mettre en place qu'à l'aide des listes déroulantes qui surmontent la fenêtre de code.
Alors vous appelez "Toto" votre Sub, vous sélectionnez LvwListComp dans la liste de gauche, puis ItemCheck dans celle de droite. Il se produit quand cet évènement ? Mais là à priori ça devrait être bon. Ça doit venir d'une autre procédure évènement, alors passez les toutes en revue… Nous on trouverait sans doute tout de suite si on avait le classeur entre les mains.
 

ckoebel5

XLDnaute Junior
Re : La déclaration de la procédure ne correspond pas à la description de l'événement

Bonjour le forum, Dranreb!

j'ai grand plaisir à vous recroiser sur le forum, d'autant que c'est vous qui avez débloqué mon projet de fichier pour la gestion de classe! Et je vous en serais toujours reconnaissant.

Mon problème semble s'être résolu... je touche du bois car je n'ai aucune certitude, la manip. que j'ai faite je ne la comprends pas.
A l'origine du problème il y avait un autre message d'erreur "erreur de compilation erreur automation", je n'y ai pas prêté grande attention car il n'est plus apparu contrairement au message d'erreur figurant en titre de discussion.

Je me suis donc souvenu de ce message, hier soir et j'ai fait la manip. suivante : j'ai ouvert les références et j'ai décoché OLE automation... depuis tout semble fonctionner. Par contre je viens de regarder dans les références du même classeur et OLE automation est de nouveau coché alors que je ne l'ai pas recoché... Est-ce au démarrage d'excel que cette référence s'est à nouveau activée??? Tout ceci survole à des années lumières au dessus de moi, me donne l'impression d'être dans un monde parallèle où toute compréhension m'échappe et cela n'a rien de rassurant et me laisse la très désagréable impression que ce projet aussi important pour moi ne tient qu'à un fil. Pourtant tout ce que j'ai testé depuis a l'air de bien fonctionner.

Pour ce qui est des listes déroulantes des fenêtres de code, j'ai l'impression de les utiliser systématiquement, aussi je ne pense pas que l'origine du problème soit située là, mais je suivrais votre conseil de passer les procédures en revue.

Pour ce qui est du classeur, je n'arrive simplement pas à l'amputer suffisamment pour le joindre...

Merci pour votre aide!

Cordialement.
 

Dranreb

XLDnaute Barbatruc
Re : La déclaration de la procédure ne correspond pas à la description de l'événement

Bonsoir.
Difficile de savoir ce qui s'est passé. Mais certaines références sont incontestablement mise automatiquement dans certains cas. Le plus classique est celui de la bibliothèque MSForms qui se met en référence toute seule quand on crée un UserForm.
Par ailleurs décocher des MANQUANTs dans les référence est souvent suffisant à faire tout rentrer dans l'ordre. Alors… un changement de version de la DLL, OCX ou autre aurait il entrainé une incompatibilité temporaire ? Mystère !
 

Discussions similaires

Réponses
4
Affichages
450
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…