Effacer les données d'une cellule si une autre devient vide

Bonjour,

je souhaiterai dans le code de la feuille que la valeur dans ma cellule D4 s'efface si soit=

- La valeur D3 devient est >0

- la valeur dans la cellule A4 est vide

Si possible sur Worksheet_Change

Meric pour votre aide

13book1.xlsx (10.02 Ko)

Bonjour

A la lecture de votre message j'ai l'impression qu'une fois une solution donnée on va avoir d'autres questions car je présume que cela ne va pas se limiter à la cellule D3...

Les #ref n'aide pas non plus..

Déjà dans votre fichier, supprimer les cellules fusionnées. Au vu de vos info, on n'a besoin que de deux colonnes et pas 5

Bonjour Dan,

Dans la cellule D3 s'affiche une valeur calculée dépendant de beaucoup d'autres infos dans la page donc sans toutes les infos un REF apparaitra toujours pour mon exemple.

Dans cette cellule c'est un décompte de stock qui une fois qu'il s'affiche à 0 me fait apparaitre la phrase dans la cellule A4 (A4:C4) et l'opérateur qui encode doit entrer la date à laquelle il a envoyé le mail dans la cellule D4 (D4:E4). tout ca se fait hors userform pour des raisons personnelles.

Dans un des tableaux de cette page, si j'encode une entrée de stock, la valeur dans D3 va donc repasser en positif et faire disparaitre le commentaire dans la celulle A4.

Donc je veux "juste" que si il y a un change dans cette worksheet il vérifie si la valeur D3 est supérieure à 0 et dans ce cas effacer la donnée dans la cellule D4(D4:E4)
La vérification peut aussi se faire sur le fait que le texte n'apparait plus dans la cellule A4(A4:C4)

Est-ce je peux garder mes cellules fusionnées et donner un nom genre "CELLD3" et m'y référencer en RANGE("CELLD3").value dans mon code?

Merci

Xavier

re

Est-ce je peux garder mes cellules fusionnées et donner un nom genre "CELLD3" et m'y référencer en RANGE("CELLD3").value dans mon code?

Alors le mieux est de
1. sélectionner les cellules fusionnées puis de les défusionner
2. Ensuite tout en gardant la sélection vous allez dans le menu Format de cellule et sous l'onglet Alignement --> Horizontal --> choisir l'option Centré sur "plusieurs colonnes"
refaire les points 1 et 2 pour chaque fusion


en gros
si D3 > 0, A4 et D4 sont vides
si D3 = 0, A4 = Order sent to truc@truc.com on et D4 est vide

Merci dan pour l'info d'alignement, je ne connaissais pas. J'ai modifié mon fichier.

en gros
si D3 > 0, A4 et D4 sont vides
si D3 = 0, A4 = Order sent to truc@truc.com on et D4 est vide

Oui c'est correct mais pour A4 dans le code VBA il ne faut pas trop s'en occuper car il s'agit déjà d'une cellule calculée qui apparrait quand D3=0. Donc elle la valeur se vide déjà quand mon stock devint positif. Là ou il faut agir c'est sur D4 qui est une cellule à encoder et qu'il faut vider une fois que la valeur dans la cellule D3 redevient supérieure à 0.

Merci

12book1.xlsx (10.03 Ko)

. Là ou il faut agir c'est sur D4 qui est une cellule à encoder et qu'il faut vider une fois que la valeur dans la cellule D3 redevient supérieure à 0.

Click droite sur l'onglet concerné et choisir l'option "Visualiser le code"

Collez le code ci-dessous dans la fenêtre

.Private Sub Worksheet_Calculate()
If Range("D3") > 0 Then Range("D4") = vbNullString
End Sub

SI ok,

Cordialement

Bonjour dan,

J'ai un soucis quand je mets le code dans ma feuille de calcul (quand je fait les tests dans la feuille "test" que j'ai fourni celà fonctionne)

image image

J'ai bien dé-fusionné les cellules (meme si j'ai réésayé dans le fichier test envoyé en refusionnant ca fonctionne également)

J'ai transformé la formule dans la D9 par une simple addition car elle contenait :=IF(ROUNDDOWN((D3/D2)-D4,0)<0,0,ROUNDDOWN((D3/D2)-D4,0)) et j'ai pensé que le problème venait de là mais toujours le soucis.

Merci

Re

Essayez le code en désactivant le code worksheet_change

même problème, mais je souhaite garder la fonction majuscule automatiquement

Je vous joins l'extraction d'une des feuilles du fichier (les autres sont identiques mais pour des autres fournitures) si vous arrivez à trouver d'ou vient l'erreur

Merci

10book2.xlsm (53.79 Ko)

Re

Oups désolé pour le retard, je vous avais oublié

Faites ceci :

- Au dessus de votre code Private Sub Worksheet_Change, mettez cette ligne

Dim encours As Boolean

- Remplacez le code que je vous ai donné par ceci

Private Sub Worksheet_Calculate()
If encours = True Then Exit Sub
If Range("D9") > 0 Then
    encours = True
    Range("D10") = vbNullString
End If
encours = False
End Sub

Si ok, pensez à

NB : ce serait bien que vous cloturiez votre autre fil dans lesquel, on vous a répondu. --> https://forum.excel-pratique.com/excel/entrer-une-information-dans-plusieurs-cellules-193740

Cordialement

Super Dan ca fonctionne parfaitement merci

Xavier

Rechercher des sujets similaires à "effacer donnees devient vide"