Problème lors de l'appel d'un call

Auzingueur

XLDnaute Junior
Bonjour tout le monde, je reviens de nouveau pour un problème que je qualifierai de "bateau".

J'ai une macro appelée "ModifSimu" dans ThisWorkbook. J'aimerai appeler cette macro à chaque changement en colonne 4 de ma feuille "Simu".

Voici donc mon code que j'ai placé sur ma feuille "Simu" :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If ActiveCell.Column = 4 Then
      Call ThisWorkbook.ModifSimu   'j'ai ausi essayé sans le "ThisWorkbook" et un erreur me signalant que la sub est non définie est apparue
End If

End Sub

Et lorsque je fais un changement dans ma fameuse colonne 4, l'erreur suivante apparaît : "Erreur d'exécution '438': Propriété ou méthode non gérée par cet objet.

Je me demande donc quoi écrire pour que cela fonctionne.. Si quelqu'un pouvait m'apporter ses lumière, je lui en serait reconnaissant.

Par avance merci!
Auzingueur

Ah oui, je ne l'ai pas précisé, mais ma sub ModifSimu n'est pas "private".
 
Dernière modification par un modérateur:

Dranreb

XLDnaute Barbatruc
Re : Problème lors de l'appel d'un call

Bonjour.

Votre procédure ModifSimu n'est probablement pas un méthode de l'objet ThisWorkbook.
Ce qui veut dire qu'elle y est Private, éventuellement par défaut de précision du mot clé Public devant Sub ModifSimu.
Je ne vois pas d'autre explication possible.
 

Auzingueur

XLDnaute Junior
Re : Problème lors de l'appel d'un call

Bonjour Dranreb,
J'ai pensé à ça aussi, et c'est d’ailleurs la première chose que j'ai fais, mais rien à faire ...

Et pour preuve : quand j'écris "ThisWorkbook." dans mon code, "ModifSimu" est dans la liste des propositions pour compléter ma ligne. C'est pour ca que j'ai du mal a comprendre.
 
Dernière modification par un modérateur:

Auzingueur

XLDnaute Junior
Re : Problème lors de l'appel d'un call

J'ai peut être une piste de solution : ma macro "ModifSimu" fait appel à d'autres macros, et notamment l'une d'elles qui à l'air de me mettre une erreur sur la ligne suivante :

Code:
If 1 < Sheets("Simu").ActiveCell.Row < 9 then

Car lorsque je met un msgbox avant je le voit apparaître a l'écran et lorsque je le met la ligne juste après (ou après le end if), il n'y est plus.
 

Dranreb

XLDnaute Barbatruc
Re : Problème lors de l'appel d'un call

Cette expression n'a probablement pas le sens que vous lui prêtez.
À mon avis elle est toujours vraie.
Converti en nombre pour pouvoir être comparée à 9 l'expression Boolean 1 < Sheets("Simu").ActiveCell.Row vaut 0 ou -1 ce qui est toujours < 9
 

Auzingueur

XLDnaute Junior
Re : Problème lors de l'appel d'un call

Bon, j'ai trouvé la solution sans bien comprendre l'erreur mais enfin bon..

J'ai juste changé dans mes macros tous les "Sheet("Simu").ActiveCell..." par des "ActiveCell..." en ayant préalablement ajouté un Sheet("Simu").activate.

Voilà tout.. Si quelqu'un comprend ce que ça change, j'aimerai bien comprendre..
 

Auzingueur

XLDnaute Junior
Re : Problème lors de l'appel d'un call

Cette expression n'a probablement pas le sens que vous lui prêtez.
À mon avis elle est toujours vraie.
Converti en nombre pour pouvoir être comparée à 9 l'expression Boolean 1 < Sheets("Simu").ActiveCell.Row vaut 0 ou -1 ce qui est toujours < 9

Ah je comprend, il prend ça comme 2 opérations de comparaison. D'où mon problème d'une boucle infinie peut-être, je vais voir ça merci du conseil!
 

Dranreb

XLDnaute Barbatruc
Re : Problème lors de l'appel d'un call

Worksheet("Simu").ActiveCell doit entrainer une erreur Propriété ou méthode non gérée par cet objet, puisqu'un objet Worksheet n'a pas de propriété ActiveCell. Et je commence à me demander si ce n'est pas la cause première. S'il n'y a pas d'arrêt sur la bonne instruction avec débogage possible, allez dans menu Outils, Options…, onglet Général, rubrique Récupération d'erreur, cochez Arrêt dans le module de classe.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 329
Messages
2 087 335
Membres
103 520
dernier inscrit
Azise