Note: The other languages of the website are Google-translated. Back to English
English English
  • Documents
  • Excel
  • Comment exécuter une macro lorsque la valeur de la cellule change dans Excel?

Comment exécuter une macro lorsque la valeur de la cellule change dans Excel?

Normalement, dans Excel, nous pouvons appuyer sur la touche F5 ou sur le bouton Exécuter pour exécuter le code VBA. Mais avez-vous déjà essayé d'exécuter le code de macro spécifique lorsqu'une valeur de cellule change? Cet article, je vais vous présenter quelques astuces rapides pour gérer ce travail dans Excel.

Exécuter ou appeler une macro lorsqu'une valeur de cellule spécifique change avec le code VBA

Exécuter ou appeler une macro lorsqu'une valeur de cellule change dans une plage avec le code VBA


flèche bleue bulle droite Exécuter ou appeler une macro lorsqu'une valeur de cellule spécifique change avec le code VBA

Pour exécuter un code de macro en modifiant la valeur d'une cellule, le code VBA suivant peut vous rendre service, procédez comme suit:

1. Cliquez avec le bouton droit sur l'onglet de la feuille que vous souhaitez exécuter la macro si la valeur de la cellule change, puis choisissez Voir le code dans le menu contextuel, et dans le Microsoft Visual Basic pour les applications fenêtre, copiez et collez le code suivant dans le module vide:

Code VBA: exécutez la macro lorsque la valeur de la cellule change:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then
        Call Mymacro
    End If
End Sub

doc exécuter la macro si la cellule change 1

Notes: Dans le code ci-dessus, A1 est la cellule spécifique sur laquelle vous souhaitez exécuter le code, Mamacro est le nom de la macro que vous souhaitez exécuter. Veuillez les modifier selon vos besoins.

2. Et puis enregistrez et fermez la fenêtre de code, maintenant, lorsque vous entrez ou modifiez la valeur dans la cellule A1, le code spécifique sera déclenché à la fois.


flèche bleue bulle droite Exécuter ou appeler une macro lorsqu'une valeur de cellule change dans une plage avec le code VBA

Si vous souhaitez exécuter ou déclencher une macro lorsque la valeur d'une cellule change dans une plage de cellules, le code suivant peut vous aider.

1. Cliquez avec le bouton droit sur l'onglet de la feuille que vous souhaitez exécuter la macro si la valeur de la cellule change, puis choisissez Voir le code dans le menu contextuel, et dans le Microsoft Visual Basic pour les applications fenêtre, copiez et collez le code suivant dans le module vide:

Code VBA: exécutez la macro lorsqu'une valeur de cellule change dans une plage:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:B100")) Is Nothing Then
Call Mymacro
End If
End Sub

doc exécuter la macro si la cellule change 2

Notes: Dans le code ci-dessus, A1: B100 correspond aux cellules spécifiques sur lesquelles vous souhaitez exécuter le code, Mamacro est le nom de la macro que vous souhaitez exécuter. Veuillez les modifier selon vos besoins.

2. Et puis enregistrez et fermez la fenêtre de code, maintenant, lorsque vous entrez ou modifiez la valeur dans n'importe quelle cellule de A1: B100, le code spécifique sera exécuté à la fois.


Supprimer toutes les macros de plusieurs classeurs

Kutools pour Excel's Supprimer toutes les macros par lots L'utilitaire peut vous aider à supprimer toutes les macros de plusieurs classeurs selon vos besoins. Téléchargez et essayez gratuitement Kutools for Excel maintenant!

Kutools pour Excel: avec plus de 300 compléments Excel pratiques, essai gratuit sans limitation dans 30 jours. Téléchargez et essayez gratuitement maintenant!


Articles Liés:

Comment exécuter une macro automatiquement avant d'imprimer dans Excel?

Comment exécuter une macro en fonction de la valeur de la cellule dans Excel?

Comment exécuter une macro en fonction de la valeur sélectionnée dans la liste déroulante dans Excel?

Comment exécuter une macro en cliquant sur des liens hypertexte dans Excel?

Comment exécuter une macro lorsque la feuille est sélectionnée dans un classeur?


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité en
80 %

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus que
    300
    Caractéristiques puissantes
    . Prend en charge Office/Excel
    2007-2019 et 365
    . Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Fonctionnalités complètes
    30
    -jour d'essai gratuit. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité en
    50 %
    , et réduit chaque jour des centaines de clics de souris !
bas de cabine
Commentaires (17)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Ce module ne fonctionne pas pour moi. Il dit que lorsque la VALEUR de la cellule change, elle exécutera le code. Je trouve que si je tape dans la cellule, cela fonctionne, mais si la valeur de la cellule est modifiée par une formule, par exemple un Counta, elle ne s'exécute pas. Avez-vous une solution pour exécuter une macro lorsque la VALEUR change via une formule ? Merci Wayne
Ce commentaire a été minimisé par le modérateur sur le site
Même problème que Wayne. Toute aide très appréciée ! Merci Ronnie
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour gars,

Oui, le code ci-dessus n'est disponible que lorsque la valeur de la cellule change manuellement, si vous devez exécuter automatiquement un code de macro spécifique lorsque le résultat de la formule change avec ses cellules relatives, veuillez consulter cet article :
https://www.extendoffice.com/documents/excel/4618-excel-vba-run-macro-when-cell-formula-result-changes.html.
S'il vous plaît essayez-le, et j'espère que votre réponse.
Ce commentaire a été minimisé par le modérateur sur le site
Cela ne fonctionne pas ... et je modifie manuellement la valeur de la cellule. Y a-t-il une préconfiguration qui doit être configurée ?
Ce commentaire a été minimisé par le modérateur sur le site
Testez ceci dans la procédure et utilisez-le comme paramètre


Sous-feuille de calcul privée_Change (cible ByVal en tant que plage)

MsgBox Target.Address & "-" et Target.AddressLocal

End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Oui, la description indique qu'il doit se déclencher lorsque la valeur change, mais le deuxième code indique que c'est lorsque la valeur n'est rien, et le premier ne se déclenche pas non plus lorsqu'une valeur change, mais si j'appuie sur F5 lorsque je regarde le code, il veut pour déclencher MyMacro, mais ne semble pas autant réagir aux changements de valeur que passer de rien à quelque chose ou à l'opposé.
Ce commentaire a été minimisé par le modérateur sur le site
Cela a fonctionné pour la première fois pour moi en utilisant la liste de validation des données qui affiche le texte en fonction de la sélection de la liste.
Ce commentaire a été minimisé par le modérateur sur le site
A très bien fonctionné pour moi ! Mon dilemme est que je veux que ce soit une macro de référence relative et il y a une différence entre appuyer sur Entrée pour enregistrer l'entrée et supprimer pour effacer la cellule.
Ce commentaire a été minimisé par le modérateur sur le site
Hé, code utile. Je pensais s'il était possible d'insérer un anneau autour des cellules qui sont changées au fur et à mesure qu'elles sont changées ? Et réinitialiser les cercles tous les lundis ?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, Kévin,
Voici aucune idée pour résoudre votre problème, si vous avez une bonne solution, veuillez commenter ici.
Ce commentaire a été minimisé par le modérateur sur le site
La macro que vous appelez, où l'avez-vous située ? J'ai le mien dans le dossier Modules mais lorsque je mets une valeur dans n'importe quelle cellule de la feuille de calcul, j'obtiens une erreur de compilation indiquant:
Variable ou procédure attendue, pas module.

S'il vous plaît aider.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, Dr Cartwright,
Désolé de vous avoir répondu si tardivement.
Oui, comme vous l'avez dit, le code de la macro doit être situé dans le module et vous devez remplacer le nom du code par votre propre nom, comme illustré ci-dessous :
Ce commentaire a été minimisé par le modérateur sur le site
Salut bon après-midi
quisiera saber el codigo para que se active una macro cuando cambia el valor de una celda de una columna, pero este valor cambia por formula,sin que el usuario introduzca ningun valor.
Ce commentaire a été minimisé par le modérateur sur le site
Salut les gars, je résous le problème suivant : je veux gratter un titre de site Web lorsque le lien est inséré dans la colonne A et mettre cette valeur dans la cellule pertinente (à côté) dans la colonne B. Le problème semble être qu'une fois que je colle le site Web dans la colonne A, le code réexécute la liste entière de la colonne A2 à la "dernière ligne" comme défini dans le code. Existe-t-il un moyen de modifier uniquement la colonne B une fois qu'une seule colonne A est modifiée ? C'est-à-dire que si je colle un lien dans la colonne A36, j'obtiens un titre dans B36, que la cellule soit au milieu de la plage utilisée ou tout en bas. Je voudrais l'utiliser sans avoir à réexécuter plusieurs entrées telles qu'elles sont actuellement ; (c'est-à-dire la boucle "pour i =2 jusqu'à la dernière ligne") ? De plus, je voudrais changer le ci-dessous de la macro modulaire, c'est-à-dire du sous-marin au sous-marin privé réagissant au changement (c'est-à-dire la fonction d'intersection) où la "cible" est n'importe quelle cellule de la plage A: A. Merci beaucoup!


Sous get_title_header()



Dim wb As Object

Dim doc As Object

Dim sURL As String

Dim lastrow As Long

lastrow = Sheet1.Cells(Rows.Count, "A").End(xlUp).row



Pour i = 2 Jusqu'au dernier rang

Set wb = CreateObject("internetExplorer.Application")

sURL = Cellules(i, 1)



wb.navigate sURL

wb.Visible = Faux



Pendant que wb.Busy

DoEvents

Wend



''Document HTML

Définir doc = wb.document



Cellules(i, 2) = doc.Titre



En cas d'erreur GoTo err_clear

Cellules(i, 3) = doc.GetElementsByTagName("h1"))(0).innerText

err_clear :

Si Err <> 0 Alors

Err.Clear

Reprendre Suivant

Si fin

wb.Quitter

Range(Cells(i, 1), Cells(i, 3)).Columns.AutoFit

Suivant i



End Sub




Je vous remercie!
Ce commentaire a été minimisé par le modérateur sur le site
J'essaie d'automatiser 1 classeur (BOM) lorsqu'un autre classeur (Statut des pièces) apporte des modifications. Le fichier d'état des pièces est mis à jour toutes les 15 minutes. J'ai besoin de savoir comment automatiser une colonne spécifique lorsque ces changements se produisent ? Des idées
Ce commentaire a été minimisé par le modérateur sur le site
J'utilise le code ci-dessous pour masquer différentes colonnes en fonction de la sélection dans une liste déroulante située dans la cellule C3, mais après qu'un calcul a été effectué n'importe où dans la feuille de calcul, TOUTES les colonnes deviennent UNHIDDEN. Comment puis-je réparer ça?

Private Sub Worksheet_Change (Cible ByVal en tant que plage)

Colonnes("D:F").Ajustement automatique

Dim Proj1 comme chaîne
Dim Proj2 comme chaîne
Dim Proj3 comme chaîne
Dim Proj4 comme chaîne
Dim Proj5 comme chaîne
Dim Proj6 comme chaîne
Dim Proj7 comme chaîne
Dim Proj8 comme chaîne
Dim Proj9 comme chaîne
Dim Proj10 comme chaîne

Proj1 = ActiveWorkbook.Sheets("Projets").Range("A1").Valeur
Proj2 = ActiveWorkbook.Sheets("Projets").Range("A2").Valeur
Proj3 = ActiveWorkbook.Sheets("Projets").Range("A3").Valeur
Proj4 = ActiveWorkbook.Sheets("Projets").Range("A4").Valeur
Proj5 = ActiveWorkbook.Sheets("Projets").Range("A5").Valeur
Proj6 = ActiveWorkbook.Sheets("Projets").Range("A6").Valeur
Proj7 = ActiveWorkbook.Sheets("Projets").Range("A7").Valeur
Proj8 = ActiveWorkbook.Sheets("Projets").Range("A8").Valeur
Proj9 = ActiveWorkbook.Sheets("Projets").Range("A9").Valeur
Proj10 = ActiveWorkbook.Sheets("Projets").Range("A10").Valeur

Dim xRG As Range
Dim xHRow As Integer
Définir xRG = Plage("C3")
Si non l'intersection (cible, xRG) n'est rien alors

Si Target.Value = Proj1 Alors
Application.Columns("E:F").Hidden = True
Application.Columns("D").Hidden = False

ElseIf Target.Value = Proj2 Alors
Range("D:D, F:F").EntireColumn.Hidden = True
Application.Columns("E").Hidden = False

Si fin
Si fin
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
C'est exactement ce que je cherchais. Lorsqu'un utilisateur entre une valeur dans une cellule, une simple macro de tri s'exécute. La macro fonctionne bien toute seule mais j'obtiens une erreur d'utilisation non valide de la propriété en utilisant le code suggéré.

Quel pourrait être le problème?
Il n'y a pas encore de commentaires postés ici
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés

Nous suivre

Copyright © 2009 - www.extendoffice.com. | Tous les droits sont réservés. Alimenté par ExtendOffice. | | Plan du site
Microsoft et le logo Office sont des marques commerciales ou des marques déposées de Microsoft Corporation aux États-Unis et / ou dans d'autres pays.
Protégé par Sectigo SSL