Microsoft 365 VBA avec fonction Target / if not intersect

laurentdu24

XLDnaute Nouveau
Bonjour,

J'avais cette fonction qui fonctionnait parfaitement :

Private Sub Worksheet_Change_value1(ByVal Target As Range)
If Not Intersect(Target, Range("Aj4:aj7")) Is Nothing Then
fonction_relance_calculs
End If
End sub


Le but de cette fonction est de relancer des calculs quand je modifie une saisie dans les cellules de la zone spécifiée.
Ces calculs sont relancés avec diverses macros, sur plusieurs feuilles auxquelles on envoie les nouvelles valeurs.

Maintenant, j'ai droit à la jolie sonnette de excel. Je ne comprends pas pourquoi.
Quand je l'exécute depuis la page des macros, c'est comme si elle ne s'exécutait pas, END SUB n'est pas surligné en Jaune.
Les autres macros s'exécutent, pourtant.
La fonction fonction_relance_calculs fonctionne très bien, toute seule.

Pouvez-vous me dire où j'ai fait une co... bêtise ?
  • paramètre de cette fonction ? je n'ai rien modifié...
  • plusieurs fonctions avec cette fonction ? j'ai supprimé tous les essais correctifs...

Questions subsidiaires liées à des tests, mais je ne comprends pas :
1 : Cette fonction doit-elle être posée spécifiquement dans les macros de la feuille concernée ou plutôt dans un module ?
(elle fonctionnait très bien en étant posée sur la feuille concernée...)
2 : fonctionne-t-elle également si je suis sur une autre feuille ?

Merci d'avance de votre aide.

Laurent
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Laurent,
Sans fichier test, la réponse ne peut être qu'évasive.
Méanmoins:
Cette fonction doit-elle être posée spécifiquement dans les macros de la feuille concernée ou plutôt dans un module ?
La fonction Worksheet_Change_value doit être impérativement mise dans la feuille concernée, sinon elle ne sera pas exécutée.
fonctionne-t-elle également si je suis sur une autre feuille ?
Absolument pas. Elle ne sera exécutée que si on est sur la feuille concernée.
Par contre vous pouvez la dupliquer sur chaque feuille où elle doit être utilisée.
 

laurentdu24

XLDnaute Nouveau
Bonjour Sylvanu,

C'est impeccable, ça marche. En revanche, je découvre que si je renomme la fonction autrement que
sub Worksheet_Change_value, par exemple en sub Worksheet_Change_value_pageXYZ alors, ça ne fonctionne pas.
C'est normal ?
Merci de cette précision, en tout cas, c'est nickel.

Bonne journée.
Laurent
 

TooFatBoy

XLDnaute Barbatruc

Discussions similaires

Réponses
4
Affichages
2 K

Statistiques des forums

Discussions
315 096
Messages
2 116 174
Membres
112 677
dernier inscrit
Justine11