Excel - Exécuter une macro lorsque des données sont entrées dans une cellule

Si un utilisateur souhaite exécuter une macro dans Microsoft Excel lorsqu'il s'avère que la cellule D10 est remplie, l'événement de modification de feuille de calcul doit être utilisé dans la feuille de calcul Excel, pas dans le module. //www.4shared.com/file/89145449/43c8c38/Change_Value_ of D10.htlml est téléchargé et le code d'origine utilisé pour exécuter la macro est défini. L'icône Visual Basic de l'onglet Développeur est sélectionnée pour Microsoft Excel-2007. Après avoir visualisé la feuille de calcul à l'endroit où vous souhaitez exécuter le code, les déclarations et général sont déroulés et la feuille de calcul est sélectionnée. Le mot 'Selection' est supprimé de la section 'Private Sub Worksheet_SelectionChange' dans la fenêtre de code. Pour changer la valeur dans la cellule D10, '$ D $ 10' est l'adresse cible définie. Cela entraînerait à son tour l'événement de changement de feuille de calcul "Appeler" la macro .

  • Problème
  • Solution
  • Remarque

Problème

J'ai une macro qui s'exécute lorsque l'utilisateur clique sur un bouton. Au lieu de cela, je veux que la macro s'exécute lorsque Cell D10 est rempli. Les données pour D10 proviennent d'un menu déroulant Validation des données, si cela compte. Cela devrait être facile mais je ne peux pas le comprendre.

Solution

Vous pouvez conserver votre macro dans le premier module. Vous devez utiliser l'événement de modification de la feuille de calcul dans la feuille de calcul elle-même et non dans un module. Permettez-moi de vous expliquer: je vais fournir un fichier pour accompagner l'explication. Dans la feuille de calcul, la plage A5: A25 est remplie de chiffres. Si vous entrez une valeur numérique dans la cellule D10, la plage G5: G10 copiera ce qui se trouve dans A5: A25. Si vous supprimez la valeur dans D10, le contenu de la plage G5: G10 sera supprimé.

//www.4shared.com/file/89145449/43c8c38/Change_Value_of_D10.html

Quel que soit votre code d'origine utilisé pour exécuter votre macro, remettez-le dans sa forme d'origine.

Depuis que vous utilisez Excel 2007, voici ce que vous devez faire:

  • 1) Cliquez sur l'onglet Développeur.
  • 2) Cliquez sur l'icône Visual Basic.
  • 3) Dans la fenêtre de gauche, double-cliquez sur la feuille sur laquelle vous souhaitez que votre code soit exécuté.
  • 4) Maintenant, en haut de la fenêtre de code, vous verrez (Général) un menu déroulant et (Déclarations) un menu déroulant.
  • 5) Cliquez sur le menu déroulant (Général) et sélectionnez Feuille de calcul.
  • 6) Maintenant, dans la fenêtre de code, vous verrez Private Private Worksheet_SelectionChange (ByVal Target As Range).
  • 7) Supprimez le mot "Sélection". Vous souhaitez supprimer "Sélection", car cela signifie que lorsque vous cliquez sur une cellule de la feuille de calcul, quelque chose se produit. Vous ne voulez pas cela, vous voulez entrer une valeur dans D10. Il convient maintenant de lire Private Sub Worksheet_Change (Target By By comme plage)
  • 8) C'est ici que vous voulez le code ...

 Private Sub Worksheet_Change (Cible ByVal en tant que plage)

Si Target.Address = "$ D $ 10" alors

Appeler MyMacro

Fin si

End Sub

  • 9) Cela signifie que lorsque vous modifiez la valeur dans D10, l'événement de changement de feuille de calcul "appellera" votre macro.

Remarque

Merci à WutUp WutUp pour cette astuce sur le forum.
Article Précédent Article Suivant

Les Meilleurs Conseils