Rapport de message :*
 

Re: temporiser le résultat d'une cellule par rapport à une autre cellule

Titre du sujet : Re: temporiser le résultat d'une cellule par rapport à une autre cellule
par myDearFriend! le 01/02/2009 19:27:10

Bonsoir dhavid et bienvenue.

A vrai dire, je doute que tu puisses obtenir l'effet souhaité grâce à une fonction personnalisée.

Par contre, tu peux obtenir ce résultat à l'aide d'une procédure évènementielle VBA et la méthode OnTime.
Dans l'exemple joint, la cellule C10 se voit affecter la valeur de A2, dix secondes après mise à jour de A2 par l'utilisateur.

Code à copier dans le module de code de la feuille de calcul souhaitée (par exemple Feuil1 comme dans l'exemple joint) :
Option Explicit
'myDearFriend! - www.mdf-xlpages.com

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("A2")) Is Nothing Then
        Application.OnTime Now + TimeSerial(0, 0, 10), ActiveSheet.CodeName & ".MAJcellule"
    End If
End Sub

Private Sub MAJcellule()
    Range("C10").Value = Range("A2").Value
End Sub

Attention toutefois
:
Si tu fermes ton classeur après mise à jour de A2 et avant mise à jour de la cellule cible C10, c'est à dire AVANT épuisement du délai de 10 secondes : Excel essaiera de réouvrir ton classeur pour réaliser la mise à jour demandée en temps voulu.

Voir l'article consacré à la méthode OnTime pour contourner au besoin ce problème.

Cordialement,