Exécuter une macro Si toute modification apportée sur la feuille de plage spécifiée
Tout au long de vos pratiques VBA, vous auriez besoin d’exécuter des macros lorsqu’une certaine plage ou cellule change. Dans ce cas, pour exécuter des macros lorsqu’une modification est apportée à une plage cible, nous utilisons l’événement change.
`link: / excel-macros-and-vba-events-in-vb [Events in VBA] nous permet d’exécuter les macros lorsqu’un certain événement se produit.
Syntaxe Événement de changement de plage VBA
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("your_range")) Is Nothing Then call your_macro End If End Sub
L’événement ne fonctionne pas dans les modules. Vous devez les écrire dans des objets (feuille de calcul, graphiques, classeur).
Les Lat ont un exemple pour apprendre à exécuter une macro lorsqu’une modification est apportée dans une plage spécifiée.
Exemple: Exécuter une macro VBA lorsqu’une modification est effectuée dans la plage A2: A100 Nous choisissons d’abord la feuille sur laquelle l’événement se produira. Double-cliquez sur cette feuille dans l’éditeur VBA et copiez le code ci-dessous ou le code générique ci-dessus et apportez les modifications selon vos besoins.
Dans cet exemple, je souhaite exécuter un code macro / VBA lorsqu’un changement est effectué dans la plage A2: A100 sur la feuille 2. Pour ce faire, je double-clique sur la feuille2 dans l’explorateur de projet. Il ouvre la page de codage de cette feuille. Vous pouvez faire un clic droit sur la feuille et cliquer sur le code de la vue pour faire de même.
J’ai besoin d’utiliser l’événement de modification. Pour cela, nous utilisons le sous-programme par défautWorksheet_Change (ByVal Target As Range). Il se déclenche lorsqu’une modification spécifiée est effectuée. Donc notre code est le suivant:
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A2:A100")) Is Nothing Then Call TestEvent End If End Sub
Lorsque vous apportez des modifications dans la plage A2: A100 sur Sheet2, le sous-programme TestEvent sera appelé, comme vous pouvez le voir dans le gif ci-dessus.
Le TestEvent est le sous-programme public dans module2. Il affiche simplement un message indiquant que l’événement fonctionne.
Sub TestEvent() MsgBox "Event is working!" End Sub
Comment ça marche?
Nous avons mis une condition:
If Not Intersect (Target, Range (« A2: A100 »)) Is Nothing Then HereIntersect (Target, Range (« A2: A100 »)) Is Nothing renvoie True si aucune modification n’est apportée à la plage A2: A100. Nous mettons un opérateur Not avant cette instruction qui inverse la sortie donnée par « Intersect (Target, Range ( » A2: A100 « )) ». Par conséquent, si aucune modification n’est apportée à la plage A2: A100, l’expression renvoie Falls et le subTestEvent ne reçoit pas l’appel. Si vous apportez une modification à une cellule de la plage A2: A100, l’expression renverra True et l’événement se produira. Et c’est ce qui se passe ici.
Remarque: vous pouvez mettre n’importe quel sous-programme dans ce bloc. Cela peut provenir de n’importe quel module. Mais ce devrait être un sous-programme public. Vous pouvez définir la plage dans n’importe quelle mesure. La feuille entière est la limite.
Alors oui les gars, voici comment appeler un sous-programme ou exécuter un code macro / VBA lorsqu’une modification est effectuée dans une plage spécifiée. C’était un exemple d’événement de base. Cet événement se déclenchera uniquement lorsque la modification est basée sur du texte. Par texte, je veux dire si vous écrivez quelque chose dans les cellules ou supprimez, l’événement se déclenchera. Si vous modifiez la mise en forme des cellules, cela ne se déclenchera pas. Il existe d’autres méthodes pour y parvenir.
J’espère que cela a été utile. Si vous avez des questions liées à ce sujet VBA ou à tout autre sujet lié à Excel, faites-moi savoir la section des commentaires ci-dessous. Et consultez nos autres articles connexes et populaires mentionnés ci-dessous.
Articles liés:
link: / events-in-vba-simple-vba-code-to-highlight-current-row-and-column-using [Le code VBA le plus simple pour mettre en évidence la ligne et la colonne actuelles en utilisant]
* | Utilisez ce petit extrait de code VBA pour mettez en surbrillance la ligne et la colonne actuelles de la feuille.
lien: / events-in-vba-the-worksheet-events-in-excel-vba [Les événements de feuille de travail dans Excel VBA]
* | Les événements de feuille de calcul sont vraiment utiles lorsque vous souhaitez que vos macros s’exécutent lorsqu’un événement spécifié se produit sur la feuille.
Articles populaires:
lien: / clavier-formule-raccourcis-50-excel-raccourcis-pour-augmenter-votre-productivité [50 raccourcis Excel pour augmenter votre productivité]
| Accélérez votre tâche. Ces 50 raccourcis vous permettront de travailler encore plus rapidement sur Excel.
lien: / formules-et-fonctions-introduction-de-vlookup-function [La fonction RECHERCHEV dans Excel]
| C’est l’une des fonctions les plus utilisées et les plus populaires d’Excel qui est utilisée pour rechercher des valeurs à partir de différentes plages et feuilles. lien: / tips-countif-in-microsoft-excel [COUNTIF dans Excel 2016]
| Comptez les valeurs avec des conditions en utilisant cette fonction étonnante. Vous n’avez pas besoin de filtrer vos données pour compter une valeur spécifique.
La fonction Countif est indispensable pour préparer votre tableau de bord.
lien: / excel-formule-et-fonction-excel-sumif-function [Comment utiliser la fonction SUMIF dans Excel]
| C’est une autre fonction essentielle du tableau de bord. Cela vous aide à résumer les valeurs sur des conditions spécifiques.