Effacer une cellule en fonction du contenu d'une autre [Fermé]

Signaler
Messages postés
45
Date d'inscription
mardi 25 février 2014
Statut
Membre
Dernière intervention
12 octobre 2017
-
Messages postés
45
Date d'inscription
mardi 25 février 2014
Statut
Membre
Dernière intervention
12 octobre 2017
-
Bonjour,

Mon fichier excel dispose de nombreuses cellules et formules donc certaines ont largement été créé par des membres de ce forum (que je remercie vivement!).

A l'heure actuelle, 3 choses se passent automatiquement :
- dans un onglet je dis par ex en cellule B2 = "a vérifier"
- dans ce cas, la cellule C3 passe en rouge
- et alors la cellule C4 donne accès à une liste déroulante (jusque là vierge) grâce à une validation des donnée "INDIRECTC3" et je peux choisir entre "à changer" ou "en cours de réparation"

Tout cela fonctionne très bien.

Le problème c'est que si jamais je supprime ou change l'état de la cellule B2, autant ma cellule C3 redevient blanche autant ma cellule C4 ne redevient pas vierge et ça fausse tout...

Comment puis-je faire ?

3 réponses

Messages postés
12929
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
12 février 2021
2 126
Bonjour

Pour l'instant sans voir le fichier je vois déjà 2 possibilités :

1) Faire une macro qui efface la donnée en C4 lorsque B2 change

2) rajouter une cellule avec liste de choix indiquant l'état final : soit rien tant que ce n'est pas réglé, soit "changé" soit "réparé"
cette dernière à l'avantage de garder trace de ce qui a été fait, la cellule C4 reste avec ce qui été à faire, "à réparer" par ex, et la seconde cellule indique que cela a été fait : "réparé"

Cdlmnt
Messages postés
45
Date d'inscription
mardi 25 février 2014
Statut
Membre
Dernière intervention
12 octobre 2017

Bonjour,

Voici le document en question : https://www.cjoint.com/?3Jjn7pDrhYk

comme vous pourrez le constater, ma 1ère présentation l'avait largement simplifié.

En gros, dans l'onglet "services Tech", toutes les lignes impaires (B5, C5, etc.) devraient se mettre à zéro si la case du dessus n'est pas en rouge. J'ai essayé de faire une formule mais ça fait tout planter et je n'arrive pas à créer une macro acceptable.

Je ne veux pas d'historique donc inutile d'alourdir avec une case en plus.

Merci pour vos idées, je bloque totalement...
Messages postés
12929
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
12 février 2021
2 126
Re

Macro à mettre dans le Worksheet de la feuille7 services tech :
Private Sub Worksheet_Change(ByVal Target As Range)
x = Target.Row
y = Target.Column
' si colonne 1 ou ligne impaire sortie
If y = 1 Or x Mod 2 <> 0 Then Exit Sub
'sinon effacement ligne en dessous
Cells(x + 1, y) = ""
End Sub


A chaque modification dans une ligne paire à partir de la colonne B on efface la ligne en dessous
x Mod 2 renvoie le reste de la division de x (le n° ligne) par 2 si c'est 0 c'est que x pair sinon x est impair (dans ce cas x Mod 2 <>0 on sort de la sub sans effacer)

Cdlmnt
Messages postés
45
Date d'inscription
mardi 25 février 2014
Statut
Membre
Dernière intervention
12 octobre 2017

Bonjour,

Merci pour votre idée. Je pense effectivement que c'est un bon moyen mais ça ne marche pas...

Qu'ai-je fait de mal ?

https://www.cjoint.com/?3JkkP1m0U9o

Merci d'avance