courbe de variation d'une cellule en temps rélle

meryAD

XLDnaute Nouveau
Bonjour

Je cherche un code qui me permet :
Lorsque une valeur de cellule A1 par exemple est changé, dans une autre cellule enregistrer le temps cors pondant à la variation de cette valeur: le but c'est obtenir un tableau à deux colonnes (la première colonne contient les valeurs et la deuxième contient le temps correspondant aux ces valeurs), pour pouvoir dessiner la courbe qui contient la variation de la valeur en temps réel.




Remarque:
La valeur de cellule est changée car est en liaison DDE avec un autre appareil


merci pour vos aides
 

job75

XLDnaute Barbatruc
Re : courbe de variation d'une cellule en temps rélle

Bonjour meryAD,

1) Créer un tableau dynamique à 2 colonnes de données nommées X et T et définies par exemple par :

=DECALER(Feuil1!$B$2;;;NBVAL(Feuil1!$B:$B)-1)
=DECALER(Feuil1!$C$2;;;NBVAL(Feuil1!$C:$C)-1)


2) Ces données seront utilisées comme sources pour le graphique : nombreux exemples sur le forum.

3) Clic droit sur l'onglet de la cellule liée (variable) A1 et Visualiser le code.

Y coller cette macro :

Code:
Private Sub Worksheet_Calculate()
If [X].Cells([X].Count) <> [A1] Then
  [X].Resize(1).Offset([X].Count) = [A1]
  [T].Resize(1).Offset([T].Count) = Now
End If
End Sub
A+
 

job75

XLDnaute Barbatruc
Re : courbe de variation d'une cellule en temps rélle

Re,

Petite précision quand même.

Les formules "dynamiques" données au 1) du post précédent supposent que :

- il y a des titres de colonnes en B1 et C1

- B2 et C2 sont initialisées :si elles sont vides, les plages X et T n'existent pas => bug de la macro.

On peut ne pas initialiser en utilisant des formules un peu plus compliquées :

Code:
=DECALER(Feuil1!$B$2;-ESTVIDE(Feuil1!$B$2);;NBVAL(Feuil1!$B:$B)-NON(ESTVIDE(Feuil1!$B$2)))

=DECALER(Feuil1!$C$2;-ESTVIDE(Feuil1!$C$2);;NBVAL(Feuil1!$C:$C)-NON(ESTVIDE(Feuil1!$C$2)))
A+
 

meryAD

XLDnaute Nouveau
Re : courbe de variation d'une cellule en temps rélle

la création des tableau dynamique sa fait au niveau de macro cad dans ou je vais coller les deux expressions
=DECALER(Feuil1!$B$2;-ESTVIDE(Feuil1!$B$2);;NBVAL(Feuil1!$B:$B)-NON(ESTVIDE(Feuil1!$B$2)))



merci d'avoir m'expliquer de plus

merci pour votre aide
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : courbe de variation d'une cellule en temps rélle

Bonjour meryAD,

X et T sont 2 noms définis :

- sous Excel 2003 : menu Insertion => Nom => Définir

- sous Excel 2007 : onglet Formules => Gestionnaire de noms.

Et dans la boîte de dialogue entrez chacune des formules pour les définir.

Edit : la macro que j'ai proposée utilise l'évènement Calculate car j'ai supposé qu'il y a une formule de liaison en A1.

Si ce n'est pas le cas, utiliser l'évènement Change :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If [X].Cells([X].Count) <> [A1] Then
  [X].Resize(1).Offset([X].Count) = [A1]
  [T].Resize(1).Offset([T].Count) = Now
End If
End Sub

A+
 
Dernière édition:

meryAD

XLDnaute Nouveau
Re : courbe de variation d'une cellule en temps rélle

Bonjour

j'ai suivi les étapes que vous m'avez di mais lors de l'exécution du macro , j'ai comme message d'erreur " erreur d'exécution 424 ".
ainsi j'ai remarqué que le contenu de la cellule A1 s'enregistre dans B3 mais seulement pour la premier exécution ainsi pas d'enregistrement de l'heur de changement de valeur après quand je change le contenu de A1 le contenu de B3 garde l'ancien valeur ainsi pas de d'enregistrement de l'heur

merci pour vos aides
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : courbe de variation d'une cellule en temps rélle

Bonjour,

La macro est très simple et suppose simplement que les noms des plages X et T soient définis correctement.

L'erreur 424 (objet requis) montre que vous n'y êtes pas arrivé.

Je ne peux rien faire de plus pour vous, désolé.

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 084
Messages
2 085 192
Membres
102 809
dernier inscrit
Sandrine83