Microsoft 365 VBA avec fonction Target / if not intersect

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 !

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
 
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.
 
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
 
J'ai copié la fonction sur le forum, mais avec Worksheet_Change_value1, ça ne marchait pas alors que Worksheet_Change_value ça fonctionne
OK. Merci pour ta réponse 👍

Du coup, je repose ma question avec le nouveau nom :
Worksheet_Change_value c'est spécifique à 365 ?
Si j'en crois le "v" de "value", c'est une macro que tu as créée. Mais sait-on jamais... 😉
 
- 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

  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
233
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
250
Réponses
16
Affichages
1 K
Réponses
4
Affichages
507
Retour