Table des matières:
Vidéo: Créer un calendrier automatique dans Excel 2024
Dans Excel, vous pouvez travailler sur des données si sensibles que vous voudrez les enregistrer chaque fois qu'une cellule ou une plage de cellules particulière est modifié. Cette macro vous permet de définir une plage de cellules qui, lorsqu'elle est modifiée, oblige le classeur à enregistrer.
Dans l'exemple illustré, vous souhaitez que le classeur soit enregistré lorsqu'une modification est effectuée sur l'une des cellules de la plage C5: C16.
Fonctionnement de la macro
Le secret de ce code est la méthode Intersect. Parce que vous ne voulez pas enregistrer la feuille de calcul lorsqu'une ancienne cellule change, vous utilisez la méthode Intersect pour déterminer si la cellule cible (la cellule modifiée) croise la plage spécifiée comme plage de déclenchement (C5: C16 dans ce cas).
La méthode Intersection renvoie l'une des deux choses suivantes: un objet Range qui définit l'intersection entre les deux plages données, ou rien. Donc, en substance, vous devez lancer la cellule cible contre la méthode Intersect pour vérifier la valeur Nothing. À ce stade, vous pouvez décider d'enregistrer le classeur.
Private Sub Worksheet_Change (Cible ByVal As Range) 'Étape 1: L'intervalle modifié se croise-t-il? Si Intersect (Cible: C5: C16) n'est pas alors Étape 2: S'il n'y a pas d'intersection, quittez la procédure Exit Sub Étape 3: S'il y a une intersection, enregistrez le classeur Else ActiveWorkbook. Save 'Étape 4: Fermer l'instruction If End If End Sub
À l'étape 1, vous vérifiez simplement si la cellule cible (la cellule qui a changé) est dans la plage spécifiée par la méthode Intersect. Une valeur de Nothing signifie que la cellule cible est en dehors de la plage spécifiée.
L'étape 2 force la macro à s'arrêter et à quitter la procédure s'il n'y a pas d'intersection entre la cellule cible et la plage spécifiée.
S'il existe une intersection, l'étape 3 déclenche la méthode Save du classeur actif, écrasant la version précédente.
À l'étape 4, vous fermez simplement l'instruction If. Chaque fois que vous lancez un contrôle If-Then-Else, vous devez le fermer avec un End If correspondant.
Comment utiliser la macro
Pour implémenter cette macro, vous devez la copier et la coller dans la fenêtre du code d'événement Worksheet_Change. Placer la macro ici lui permet de s'exécuter chaque fois que vous apportez des modifications à la feuille:
-
Activez Visual Basic Editor en appuyant sur Alt + F11.
-
Dans la fenêtre du projet, trouvez le nom de votre projet / classeur et cliquez sur le signe plus à côté pour voir toutes les feuilles.
-
Cliquez sur la feuille à partir de laquelle vous voulez déclencher le code.
-
Dans la liste déroulante Événement, sélectionnez l'événement Modifier.
-
Tapez ou collez le code dans le module nouvellement créé, en changeant l'adresse de plage en fonction de vos besoins.
Entrez votre code dans l'événement Changement de feuille de travail.