Exécuter une macro quand la valeur d'une cellule change

Bonjour le forum,

J'ai un classeur Excel avec une macro dans l'onglet "Initialisation" qui me permet :

  • de créer des copies de l'onglet "Colonne ECS(1)" en fonction de la valeur de la cellule (E7),
  • de masquer des lignes de l'onglet ("Collecteur") en fonction de la valeur de la cellule (E11), cette valeur indiquant les lignes qui doivent rester visibles.
Le problème est que pour que cette cellule (E11) soit active , il faut que je re-clique dessus après avoir saisi le nombre. par exemple si je tape 10+Entrée, il ne se passe rien, pour avoir les 10 lignes visibles dans l'onglet "Collecteur", il faut que je re-clique sur la cellule.

J'ai cherché sur le forum une solution, mais je n'ai pas trouvée.

Quelqu'un peut-il me donner la solution ?

Merci pour votre aide.

133exemple.zip (35.07 Ko)

Bonsoir Sergio,

En utilisant le code que je t'ai transmis ici, tu ne devrais pas rencontré ce soucis.

Bonne soirée

Bonsoir Sharney,

Merci pour ta réponse rapide. Je me suis servi de ta réponse précédente pour écrire la macro.

Effectivement avec le fichier joint à ta réponse, ça marche nickel, mais là non et je ne vois pas pourquoi.

As-tu une idée ?

Tout simplement car ton code est situé dans :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Remplace cette ligne par :

Private Sub Worksheet_Change(ByVal Target As Range)

Cela devrait le faire.

Re-bonsoir Sharney,

Merci beaucoup. Ça marche nickel.

Très bonne soirée.

Re-bonsoir Sharney,

J'ai un petit problème, avec cette modification, la première partie de la macro (la copie d'onglet) la marche plus.

As-tu une idée ?

Merci.

Bonsoir,

Serait-il possible d'avoir un nouveau fichier joint avec les macros actuellement en place ? Comme ça je peux regarder ce qui ne va pas.

Merci

Bonjour Sharney,

Merci pour ton aide, mais je pense avoir trouvé la solution.

Par contre, j'ai un autre petit problème. Je ne sais pas s'il faut ouvrir une nouvelle discussion, mais je te le soumets quand même.

Dans l'onglet "Colonne ECS (1)" je voudrais masquer des lignes en fonction de la valeur de la cellule E13.

La valeur de cette cellule peut varier de 1 à 11.

Si la valeur de la cellule E13 est égale à 11, il n'y aucune ligne masquée.

Si la valeur de la cellule E13 est égale à 10, les lignes (18 à 27 et 147) sont masquées.

Si la valeur de la cellule E13 est égale à 9, les lignes (18 à 37, 146 et 147) sont masquées.

Si la valeur de la cellule E13 est égale à 8, les lignes (18 à 47 et 145 à 147) sont masquées.

Si la valeur de la cellule E13 est égale à 7, les lignes (18 à 57 et 144 à 147) sont masquées.

Si la valeur de la cellule E13 est égale à 6, les lignes (18 à 67 et 143 à 147) sont masquées.

Si la valeur de la cellule E13 est égale à 5, les lignes (18 à 77 et 142 à 147) sont masquées.

Si la valeur de la cellule E13 est égale à 4, les lignes (18 à 87 et 141 à 147) sont masquées.

Si la valeur de la cellule E13 est égale à 3, les lignes (18 à 97 et 140 à 147) sont masquées.

Si la valeur de la cellule E13 est égale à 2, les lignes (18 à 107 et 139 à 147) sont masquées.

Si la valeur de la cellule E13 est égale à 1, les lignes (18 à 117 et 138 à 147) sont masquées.

J'ai essayé d'écrire une macro en fonction de celle que tu avais écrite, mais je n'y arrive pas (mais connaissances en VBA sont très limitées). Peux-tu me rendre ce petit service.

Merci.

38exemple.zip (34.16 Ko)

Bonjour,

Je viens de commencer le code pour les valeurs de 8 à 11.

De mon côté cela fonctionne, mais essaie le aussi, et je pense que tu vas facilement comprendre le principe et pouvoir continuer le code de ton côté.

Bonne journée

165exemple-2.zip (24.28 Ko)

Re-bonjour Sharney,

C'est parfait.

Merci encore pour ton aide.

Très bonne journée.

Mais de rien.

Rechercher des sujets similaires à "executer macro quand valeur change"