Freezer la valeur d'une cellule dans une fonction

F2T

XLDnaute Occasionnel
Je souhaiterais fixé une variable se trouvant dans une cellule.

Ceci par deux fois:

-La premiere fois lorsqu' une conditions de temps est remplis.

-La deuxieme fois lorsque quinze minutes se sont écoulé apres la conditions de temps remplis.

Quelqu'un serait il si cela est réalisable?


Function R(D As Date, T As Time, VAR As Variant)

' VAR étant la cellule qui varie constament .
' VAR (T+1) étant la valeur de cette cellule 15 mn apres validation conditions de temps.

VAR(T + 1) = VAR

If D = Date And T = Time Then

VAR (T + 1) - VAR

End If

End Function


Attention ma connaissance de vba est limité. Je vous remerci pour l'aide.
 

F2T

XLDnaute Occasionnel
Re : Freezer la valeur d'une cellule dans une fonction

Basiquement c'est pouvoir freezer (copier coller valeur), une cellule DDE a deux intervalles de temps différents (a deux moment).

Et ensuite utilisé ces deux données obtenu dans un calcul.
:)

DDE (cellule dont les données sont implementer en temps réel)
 

job75

XLDnaute Barbatruc
Re : Freezer la valeur d'une cellule dans une fonction

Re,

Je crois comprendre que vous voulez mémoriser la valeur de la cellule à 2 instants déterminés.

Dans le fichier joint, la valeur de la cellule A1 est mémorisée 1 et 2 minutes après l'ouverture dans les 2 noms Valeur1 et Valeur2.

Ces 2 noms sont créés automatiquement (menu Insertion-Nom-Définir).

Ils peuvent donc être utilisés dans la feuille de calcul.

Les macros VBA sont dans ThisWorkbook (Al+F11 => double-clic sur "ThisWorkbook") :

Code:
Dim n As Byte 'mémorise la variable

Private Sub Workbook_Open()
ThisWorkbook.Names.Add "Valeur1", "=""""" 'facultatif"
ThisWorkbook.Names.Add "Valeur2", "=""""" 'facultatif
Application.OnTime Now + TimeValue("0:1:0"), "ThisWorkbook.PoseValeur" 'délai à adapter...
Application.OnTime Now + TimeValue("0:2:0"), "ThisWorkbook.PoseValeur" 'délai à adapter...
End Sub

Private Sub PoseValeur()
n = n + 1
With Sheets("Feuil1").[A1]
  If .Value <> "" Then ThisWorkbook.Names.Add "Valeur" & n, .Value 'mémorise la valeur de la cellule
End With
MsgBox "Le nom Valeur" & n & " est renseigné !" 'facultatif
End Sub

Edition : télécharger le fichier pour le tester...

A+
 

Pièces jointes

  • CreationNoms(1).xls
    36 KB · Affichages: 62
Dernière édition:

job75

XLDnaute Barbatruc
Re : Freezer la valeur d'une cellule dans une fonction

Re,

Puisque vous parliez de fonction, voici une solution avec la fonction VBA Valeur.

Dans ThisWorkbook :

Code:
Dim n As Byte 'mémorise la variable

Private Sub Workbook_Open()
tablo(1) = "": tablo(2) = ""
Calculate
Application.OnTime Now + TimeValue("0:1:0"), "ThisWorkbook.PoseValeur" 'délai à adapter...
Application.OnTime Now + TimeValue("0:2:0"), "ThisWorkbook.PoseValeur" 'délai à adapter...
End Sub

Private Sub PoseValeur()
n = n + 1
With Sheets("Feuil1").[A1]
  If .Value <> "" Then tablo(n) = .Value 'stocke la valeur de la cellule
End With
Calculate
MsgBox "Valeur(" & n & ") est recalculée !" 'facultatif
End Sub

Dans le Module1 :

Code:
Public tablo(1 To 2) 'mémorise le tableau

Function Valeur(n As Byte) As Variant
Application.Volatile
Valeur = tablo(n)
End Function

Fichier joint.

A+
 

Pièces jointes

  • CreationFonction(1).xls
    38 KB · Affichages: 62

F2T

XLDnaute Occasionnel
Re : Freezer la valeur d'une cellule dans une fonction

C'est intéréssant, mais pour l'instant. Il crée un nouveau classeur chaque minute.

Ce qui est embettant.

Je vais voir si j'arrive a recuperer les données stocké en memoire pour les appliquer a une difference.

Valeur 2 - Valeur 1.

Sinon, je pense que ce procédé utilise beaucoup de memoire.
Est il possible de clearer la memoire toutes les heures?
Car Le fichier devrait rester ouvert toute la journée.

En tous cas Merci. :):)
 

Discussions similaires

Statistiques des forums

Discussions
312 303
Messages
2 087 047
Membres
103 441
dernier inscrit
MarioC