Note: The other languages of the website are Google-translated. Back to English

Comment effacer le contenu de la cellule spécifiée si la valeur d'une autre cellule change dans Excel ?

Supposons que vous souhaitiez effacer une plage de contenus de cellule spécifiés si la valeur d'une autre cellule est modifiée, comment pouvez-vous faire? Cet article vous montrera une méthode pour résoudre ce problème.

Effacer le contenu de la cellule spécifiée si la valeur d'une autre cellule change avec le code VBA


Effacer le contenu de la cellule spécifiée si la valeur d'une autre cellule change avec le code VBA


Comme illustré ci-dessous, lorsque la valeur de la cellule A2 est modifiée, le contenu de la cellule C1: C3 sera automatiquement effacé. Veuillez faire comme suit.

1. Dans la feuille de calcul, vous effacerez le contenu de la cellule en fonction des modifications d'une autre cellule, cliquez avec le bouton droit sur l'onglet de la feuille et sélectionnez Voir le code dans le menu contextuel. Voir la capture d'écran:

2. Dans l'ouverture Microsoft Visual Basic pour applications fenêtre, copiez et collez sous le code VBA dans la fenêtre Code.

Code VBA: efface le contenu de la cellule spécifiée si la valeur d'une autre cellule change

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A2")) Is Nothing Then
        Range("C1:C3").ClearContents
    End If
End Sub

Notes: Dans le code, B2 est la cellule sur laquelle vous effacerez le contenu de la cellule et C1: C3 est la plage dont vous effacerez le contenu. Veuillez les changer selon vos besoins.

3. appuie sur le autre + Q touches pour fermer le Microsoft Visual Basic pour applications fenêtre.

Ensuite, vous pouvez voir le contenu de la plage C1: C3 est automatiquement effacé lorsque la valeur de la cellule A2 change comme illustré ci-dessous.


Articles Liés:


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 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ée...
  • 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 gammes...
  • 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 cellules...
  • 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 PDF...
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. 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é de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine
Commentaires (22)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Le code pour effacer une cellule si une autre change fonctionne très bien !!!! Mais j'en ai besoin pour travailler dans l'autre sens ..... Comment ce code est-il écrit ??


Merci de votre aide
Scott
Ce commentaire a été minimisé par le modérateur sur le site
Cher Scott,
Qu'est-ce que tu entends par travailler dans l'autre sens ? Lorsque vous effacez manuellement le contenu de certaines cellules (C1 : C3), puis effacez automatiquement le contenu de la cellule A2 ?
cristal
Ce commentaire a été minimisé par le modérateur sur le site
bonjour, cela ne fonctionne que pour une cellule source fixe (A2), comment faire cela dynamiquement comme la source est une cellule variable? j'ai essayé d'écrire
A=celluleactive.ligne
Si ce n'est pas l'intersection (cible, plage ("A" & A)) n'est rien alors
Range("C1:C3").ClearContents
Si fin

cela devrait faire le travail en ce qui concerne activecell (c'est-à-dire la sélection) mais ne fonctionne pas
à
Mat 257
Ce commentaire a été minimisé par le modérateur sur le site
Good Day,
Veuillez essayer le code VBA ci-dessous. Merci pour votre commentaire.

Private Sub Worksheet_Change (Cible ByVal en tant que plage)
If (Not Intersect(Target, Rows(1)) Is Nothing) And (Target.Count = 1) Alors
Range("C1:C3").ClearContents
Si fin
End Sub
cristal
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, je cherche un moyen d'effacer une plage de cellules de données lorsqu'un "x" est entré dans une certaine cellule. J'ai utilisé la formule ci-dessus et cela a parfaitement fonctionné pour cette ligne. Le problème est que je dois l'étendre à plusieurs lignes. Par exemple, si un "x" est entré dans "D13", j'ai besoin que la plage J:13 - v:13 soit effacée. J'ai également besoin que cela se produise si un x est entré dans "D14" car j'ai besoin que la plage d:14 - v:14 soit effacée. Y a-t-il un moyen d'écrire cela ? Merci pour ton aide!
Jason
Ce commentaire a été minimisé par le modérateur sur le site
Salut, cela ne fonctionne pas pour le mien. Rien ne change mais aucune erreur non plus. Des conseils ?
Mac
Ce commentaire a été minimisé par le modérateur sur le site
Bonne journée,
Désolé pour le dérangement. Souhaitez-vous fournir votre version Office ? Merci pour votre commentaire.
cristal
Ce commentaire a été minimisé par le modérateur sur le site
Dans le cas de A2, comment référencer une cellule d'une autre feuille de calcul ?
GQ
Ce commentaire a été minimisé par le modérateur sur le site
un moyen de le faire sans VBA?
Sonia
Ce commentaire a été minimisé par le modérateur sur le site
Salut Sonia,
Je n'ai trouvé aucune solution à l'exception de VBA. Merci pour votre commentaire.
cristal
Ce commentaire a été minimisé par le modérateur sur le site
Quel code VBA dois-je utiliser si j'ai une table et que j'ai besoin de plusieurs blancs ?

Ma table est B3:E7. Si le contenu de la colonne B est effacé, j'aimerais que les données des colonnes C, D, E soient effacées pour cette ligne. J'ai le ci-dessous pour la rangée 3, mais je voudrais la même chose dans les rangées 4,5,6, 7, XNUMX et XNUMX.

Private Sub Worksheet_Change (Cible ByVal en tant que plage)
Si ce n'est pas l'intersection (cible, plage ("B3")) n'est rien alors
Range("C3:E3").ClearContents
Si fin
End Sub
Mat
Ce commentaire a été minimisé par le modérateur sur le site
Qu'en est-il d'un seul pour effacer le contenu de n'importe quelle cellule sur un double-clic ?
Stephen
Ce commentaire a été minimisé par le modérateur sur le site
Salut, comment répétez-vous le code pour plus d'une cellule dans l'exemple, c'est-à-dire si je supprime le contenu des cellules a4 et a5, je veux effacer le contenu de b4: z4 et b5: z5 respectivement, je dois le faire pour une grande feuille de calcul avec 1000 lignes, tout conseil sera très apprécié
julien
Ce commentaire a été minimisé par le modérateur sur le site
Salut Julien, Je recherche également la même chose, s'il vous plaît laissez-moi savoir si vous avez une solution pour cela.
Sameer
Ce commentaire a été minimisé par le modérateur sur le site
Veuillez modifier les chiffres en conséquence
Dim i comme entier
Private Sub Worksheet_Change (Cible ByVal en tant que plage)
For i = 2 Pour 10
lookrange = "A" & je
contentrange = "B" & je & ":" & "C" & je
Si non intersecter (cible, plage (lookrange)) n'est rien alors
Range(contentrange).ClearContents
Si fin
Suivant i
End Sub
Sagar Srinivas
Ce commentaire a été minimisé par le modérateur sur le site
Salut sagarsrinivas0312, Merci beaucoup pour ce code. Je cherche déjà une semaine pour cette solution!
LoreB
Ce commentaire a été minimisé par le modérateur sur le site
C'est super, merci. Comment puis-je faire cela plusieurs fois ... alors effacez les autres cellules en fonction d'une colonne différente?
pm
Ce commentaire a été minimisé par le modérateur sur le site
Hi,
J'essaie d'effacer les cellules supplémentaires des colonnes A et B si vous trouvez des cellules vides dans la colonne C de la feuille nommée "Vendu" et que la macro s'exécute à partir de la feuille nommée "Facture".

J'ai reçu le code ci-dessous d'un site d'aide, mais je n'obtiens pas ce que je souhaite.
s'il vous plaît aidez-moi à ce sujet. Capture d'écran jointe ce que je veux.

Somme Effacer()

Dim g aussi longtemps
Pour g = 2 Vers ActiveSheet.UsedRange.Rows.Count
Si Cellules(g, "C").Valeur = "" Alors
Cellules(g, "A").ClearContents
Cellules(g, "B").ClearContents

Si fin
Suivant
Somme finale
LUCKY
Ce commentaire a été minimisé par le modérateur sur le site
Cela ne semble pas fonctionner si le contenu de la cellule spécifiée est contrôlé par une cellule sur une autre feuille ? y a-t-il un correctif pour cela?
Exemple utilisant vos noms de cellule
Si la cellule "A2" est (= feuille1 [@ [a5]] et que ce nombre change sur la feuille 1, puis modifie le contenu de A2, il n'efface pas le contenu dans la plage spécifiée.
Michel
Ce commentaire a été minimisé par le modérateur sur le site
Private Sub Worksheet_Activate ()
Si Plage("S2") <> Plage("A2").Valeur Alors
Plage("S2") = Plage("A2").Valeur
Range("d2:g2").ClearContents
Fin si
'S2' peut être remplacé par n'importe quelle cellule en dehors de la plage de données. Ce que fait le VBA, c'est mettre automatiquement à jour les données pour 'S2', puis les données mises à jour sont ce qui contrôle la plage que vous avez spécifiée et si elle est effacée ou non.
C'est le seul moyen que j'ai trouvé pour réussir cela lors de l'utilisation de cellules référencées à la fois à l'intérieur et à l'extérieur de la feuille de calcul.
James
Ce commentaire a été minimisé par le modérateur sur le site
Pas tout à fait ce dont j'ai besoin mais y arriver. J'ai une cellule vide E3. J'ai des données dans B3. Lorsque je mets des données dans E3, si elles sont identiques à B3, B3 est supprimé. J'espère que vous pourrez m'aider.
Andrew Matthews
Ce commentaire a été minimisé par le modérateur sur le site
Est-il possible d'effacer le contenu d'une cellule spécifiée si la cellule de déclenchement contient un nombre spécifique ? Dites, SI la cellule A1 = 1, puis effacez Cellules A2 : A4 ?
Simon Crawley
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