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 ?
elle existe bien, sur excel 365 / 2021 etc.
Mon problème est que je personnalisais le nom de la fonction en ajoutant le nom de la page Worksheet_Change_value_pageX, et tout était bloqué...
je l'ai sur 2021, les anciens, je n'ai pas de certitude.
Je regarderai sur les plus anciens, car si mes utilisateurs n'ont pas accès aux fonctionnalités... ça craint
Mais je dirais qu'il n'y a pas de raisons c juste : activer certaines fonctions sur changement de cellules... pas très complexe et plutôt basique pour un concepteur d'excel
Bonjour.
Conseil : Pour implanter une procédure de prise en charge d'évènement, utilisez toujours les listes déroulantes qui surmontent la fenêtre de code. Celle de gauche (Objet) propose tous les objets générateurs d'évènements disponibles dans le module objet. Celle de droite (Procédure) tous les évènements pouvant être pris en charge. Je serais vraiment extrêmement étonné qu'en version 365 l'objet Worksheet propose la prise en charge d'un évènement Change_value ! Ce serait vraiment du grand n'importe quoi ! Ne serait-ce qu'à cause du "_" que ce nom d'évènement contiendrait. Ce serait une dérogation invraisemblable à la règle selon laquelle ce caractère n'est utilisé que comme séparateur entre le nom de l'objet et le nom de l'évènement. Comme dans SelectionChange, Selection_Change n'existant pas.
je l'ai sur 2021, les anciens, je n'ai pas de certitude.
Je regarderai sur les plus anciens, car si mes utilisateurs n'ont pas accès aux fonctionnalités... ça craint
Mais je dirais qu'il n'y a pas de raisons c juste : activer certaines fonctions sur changement de cellules... pas très complexe et plutôt basique pour un concepteur d'excel
Bonsoir laurentdu24,
la question que pose TooFatBoy, ce n'est pas l'existence de la fonction Worksheet_Change, il est bien évident qu'elle existe dans toutes les versions d'Excel, mais l'existence de la fonction Worksheet_Change_value. C'est le_value qui interpelle ... et qui n'existe pas, quelle que soit la version d'Excel, du moins de ce que j'ai vu des nombreuses versions d'Excel qui me sont passées entre les mains. Soit cette fonction (Worksheet_Change_value) a été créée dans un module et elle peut être appelée, soit elle est incorrecte car inexistante en VBA. Cordialement,
Elle est Private alors elle ne peut être invoquée que dans le module qui la contient. Mais il faut vraiment être vicieux pour appeler "Worksheet_Change_value" une Sub perso à invoquer.
Bonsoir laurentdu24,
la question que pose TooFatBoy, ce n'est pas l'existence de la fonction Worksheet_Change, il est bien évident qu'elle existe dans toutes les versions d'Excel, mais l'existence de la fonction Worksheet_Change_value. C'est le_value qui interpelle ... et qui n'existe pas, quelle que soit la version d'Excel, du moins de ce que j'ai vu des nombreuses versions d'Excel qui me sont passées entre les mains. Soit cette fonction (Worksheet_Change_value) a été créée dans un module et elle peut être appelée, soit elle est incorrecte car inexistante en VBA. Cordialement,