Coller un texte dans une cellule lorsqu'elle devient vide

Bonjour à tous,

Afin de donner un fil conducteur aux utilisateurs de mon fichier excel, je souhaiterai écrire une courte explication dans une cellule lorsque son contenu est effacé.

J'ai une case où je dois rentrer le nom d'un responsable, lorsque j'éfface cette cellule, un texte doit apparaitre et indiquer:

"Noter votre responsable."

Une formule est présente en I3 et me retourne le résultat "VRAI" si la cellule F5 est vide.

Le code VBA identifie si un changement de valeur est effectué et si la cellule est vide alors il lance MaMacro.

Le problème c'est que cela ne fonctionne pas, sauf lorsque je lance manuellement MaMacro.

Je crois que mon changement de valeur est mal interprété.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target = [I3] Then 'Si la cellule I3 est vide alors

If Range("I3").Value = "VRAI" Then MaMacro ' SI la cellule I3 est égale à vrai alors lancer MaMacro

End If

End Sub

Sub MaMacro() ' code fonctionnel

Sheets("Liste").Range("DT3:DT3 ").Copy ' je vais dans la feuille Liste pour copier le texte souhaité

Sheets("CR").Range("F5").PasteSpecial 'je vais dans la feuille CR pour coller le texte dans la cellule F5 vide.

End Sub

Merci d'avance à et celles et ceux qui me liront.

Merci d'avance à celles et ceux qui me répondront

Mouchi

Bonjour,

La modification du résultat d'une formule ne lève pas l'événement "_change".

Pourquoi passer par une cellule complémentaire , avec une formule ?

Solution proposée : tester directement la cellule F5 sur changement de valeur.

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target = [F5] Then
        If Target.Value = "" Then
            MaMacro
        End If
    End If

End Sub

Bouen

Bonjour,

Pas certain d'avoir compris (mais même hypothèse que bouben que je salue).

En outre, sans fichier, on ne peut savoir ce que contient DT3 de la feuille "Liste" ... Une proposition minimaliste, donc:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$F$5" And Target = "" Then
    Application.EnableEvents = False
    Target.Value = "noter le nom du responsable"
    Application.EnableEvents = True
End If
End Sub

Bonjour bouben, Bonjour U. Milité,

Merci à vous pour vos réponses très rapides et qui ont fonctionné.

Je penserais à fournir un fichier la prochaine fois.

La solution d' U.Milité a fonctionné.

Merci.

Bonne journée.

Rechercher des sujets similaires à "coller texte lorsqu devient vide"