Bonjour
un essai de code événementiel à mettre sur la feuille "imprimer" :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D1")) Is Nothing Then
Dim Anc, Nouv
Application.EnableEvents = True ' on arrête le surveillance événementielle
Nouv = Target.Value
Application .Undo
Anc = Target.Value
If Anc = Nouv Then Exit Sub
Target.Value = Nouv
If Nouv <> "" Then Call impression
Application.EnableEvents = True
End If
End Sub
En somme on détecte un changement de valeur sur la cellule D1.
On arrête la surveillance événementielle de la feuille.
On inscrit cette nouvelle valeur dans la variable Nouv.
On fait un "Undo" de l'application.
On inscrit l'ancienne valeur de la cellule D1 dans la variable Anc.
Si Anc et Nouv sont = on quitte la procédure
On "remet" en place la nouvelle valeur de D1
Si Nouv est différent de rien alors on imprime.
On remet en marche la surveillance événementielle.
Pas essayé...
@ bientôt
LouReeD