Problème de code VBA avec la touche Delete

Bonjour,

J’ai un petit souci avec le fichier ci-joint.

En l’état tel que présenté, suivant quelles combinaisons de cellules sont effacées par la touche "Delete", il y a des formules qui viennent se placer à des endroits où elles ne peuvent plus être effacées par l'utilisateur, puisque ma feuille est protégée.

Ainsi, si j’efface conjointement B7 et B9, une formule qui n’est plus effaçable est inscrite en B8 ; si j’efface conjointement B9 et B10, une formule est inscrite en B12, etc.

Savez-vous si l’on peut éviter cela ? Par exemple est-il possible que le code Private Sub Worksheet_Change(ByVal Target As Range) ne soit pas déclenché lors de l’effacement des cellules par la touche Delete ou peut-on forcer les utilisateurs à choisir le bouton « Vider les cellules » (en désactivant l’effet de la touche Delete ?) afin de remettre à zéro les cellules (avec l’inconvénient que toutes les cellules sont vidées et non pas seulement celles désirées) ?

A vous relire.

Bonjour,

Il me semble que ton principal souci, c'est surtout de ne pas avoir de formule en B8 et B12 lorsque tu supprimes conjointement plusieures cellules.

Tu peux confirmer ??

A te relire

Salut Dan,

Tu a écrit :

Il me semble que ton principal souci, c'est surtout de ne pas avoir de formule en B8 et B12 lorsque tu supprimes conjointement plusieures cellules

Oui et non ! S'il n'y avait pas de formules inscrites en B8 et ou B12 selon les combinaisons d'effacement, ce serait déjà ça, mais les combinaisons d'effacement citées n'en sont que deux déjà trouvées parmi peut-être de nombreuses autres combinaisons non encore découvertes.

C'est pourquoi je me demandais si on ne pouvait pas trouver une solution globale, selon les diverses idées que j'ai déjà avancées dans mon premier message.

Mais toute solution pouvant faire avancer le schmilblick serait la bienvenue.

Cordialement.

Re,

essaie avec cette instruction à placer dans cette macro --> Private Sub Worksheet_Change(ByVal Target As Range)

If target.count > 1 then exit Sub

Place ce code juste entre la déclaration de variable Dim.... et l'instruction "If Flag Then Exit Sub"

A te relire

En plein dans le mille

Merci beaucoup Dan pour cette réponse géniale ; tous mes problèmes sont résolus d'un seul coup.

Bonne journée et à la prochaine.

Rechercher des sujets similaires à "probleme code vba touche delete"