afficher l'heure d'un evenement dans une plage de cellules

jo810000

XLDnaute Nouveau
Bonjour
pouvez vous m'aider, mon problème est le suivant
j'ai deux colonnes une en A12:A51. une deuxième en C12:C51
dans chacune des cellules de ces deux plages ,des chiffres qui changent automatiquement toute la journée
je veux pouvoir fixer l' heure automatiquement
du dernier changement de chaque cellule dans les colonnes d'a coté B12:B51) pour la plage A12:A51;et D12:D51 pour la plage C12: C51
quelle est la formule a mettre dans Visual basic , je suis sur Excel 2013
merci de votre aide
cordialement JO
 

jo810000

XLDnaute Nouveau
Re : afficher l'heure d'un evenement dans une plage de cellules

merci
mais je ne suis pas programmeur, pour moi c'est du chinois
pouvez vous être plus précis s'il vous plait
aller dans Visual basic et copier la formule c'est tout ce que je sais faire
 

vgendron

XLDnaute Barbatruc
Re : afficher l'heure d'un evenement dans une plage de cellules

ha pardon, comme tu disais avoir des chiffres qui change automatiquement toute la journée, je pensais que tu avais déjà eu à faire au vba.

donc.. pour faire simple et efficace,
il faudrait que tu postes ton fichier exemple (= sans data confidentielle) pour qu'on se rende compte de ce à quoi ca ressemble
et comme ca, on peut travailler sur une base communce et te proposer une solution réellement adaptée à ton besoin

pour poster ton fichier: "Aller en mode avancé" sous la fenetre du post
puis joindre un fichier...
 

jo810000

XLDnaute Nouveau
Re : afficher l'heure d'un evenement dans une plage de cellules

re
excusez moi c'est la première fois
je vous ai envoyé le fichier
les chiffres qui défilent automatiquement dans les plages A12:A51 et B12:B51 viennent des colonnes AV er AW ( ce sont des cotations importes par liens DDE
je voudrais avoir l heure a laquelle a change la dernière cotation dans A12:A51 dans B12:B51 et C12:C51, dans D12:D51
merci de votre aide
cordialement jo
 

Pièces jointes

  • essai pour obtenir heure a chaque changement evenement dans plage A et C.xlsm
    35.3 KB · Affichages: 67

vgendron

XLDnaute Barbatruc
Re : afficher l'heure d'un evenement dans une plage de cellules

Comme dans ton fichier il y a des liens DDE qui ne fonctionnent pas chez moi (normal), je te laisse essayer ce code

à coller dans le module de la feuille "Feuil1"

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A12:A51")) Is Nothing Then
    Target.Offset(0, 1) = Time
End If
    
If Not Intersect(Target, Range("C12:C51")) Is Nothing Then
    Target.Offset(0, 1) = Time
End If
End Sub
 

jo810000

XLDnaute Nouveau
Re : afficher l'heure d'un evenement dans une plage de cellules

re
ca ne marche pas ,il faut double cliquer sur chaque cellule et seulement un changement d'heure se fait ,que la cellule est ou n'est pas change de valeur c'est pareil l'heure change
il faut trouver une autre solution
 

vgendron

XLDnaute Barbatruc
Re : afficher l'heure d'un evenement dans une plage de cellules

ah oui. effectivement,
dans mon test, je modifiais directment les cellules concernées.. donc ca marchait bien.. sauf qu'il s'agit en fait de formules qui vont voir d'autres cellules. lesquelles sont modifiées..

bon. j'ai pas trop le temps de creuser la.. mais va voir de ce coté
Gestion des événements

il semble qu'il faille de toute facon passer par une mémorisation des anciennes données et, lors de l'évènement "Calculate" vérifier si elles ont été changées pour du coup, mettre l'heure..
Comme ton tableau semble fixe (A12:A51), ca semble possible: faudrait juste faire un copier collage spécial des valeurs de ce tableau ailleurs dans ton classeur..
 

Paf

XLDnaute Barbatruc
Re : afficher l'heure d'un evenement dans une plage de cellules

Bonjour à tous

à essayer:

Dans un module standard:
Code:
Public MonTab1, MonTab2

dans le code de ThisWorkbook
Code:
Private Sub Workbook_Open()
 MonTab1 = Range("A12:A51")
 MonTab2 = Range("C12:C51")
End Sub

et dans le code de la feuille Feuil1
Code:
Private Sub Worksheet_Calculate()
 For i = 1 To 39
 If Cells(11 + i, 1) <> MonTab1(i, 1) Then
    Cells(11 + i, 2) = Time
    MonTab1(i, 1) = Cells(11 + i, 1)
 End If
 If Cells(11 + i, 3) <> MonTab2(i, 1) Then
    Cells(11 + i, 4) = Time
    MonTab2(i, 1) = Cells(11 + i, 3)
 End If
 Next
End Sub

A+
 

Dranreb

XLDnaute Barbatruc
Re : afficher l'heure d'un evenement dans une plage de cellules

Bonjour.

Pouvez vous essayer ce code dans un module :
VB:
Option Explicit
Dim PLgTrv As Range, Temps As Date

Sub Démarrage()
Set PLgTrv = Feuil1.[K12:N51]
PLgTrv.Columns(1).FormulaR1C1 = "=RC48"
PLgTrv.Columns(2).FormulaR1C1 = "=IF(OR(ISBLANK(RC2),RC[-1]<>RC1),NOW(),RC2)"
PLgTrv.Columns(3).FormulaR1C1 = "=RC49"
PLgTrv.Columns(4).FormulaR1C1 = "=IF(OR(ISBLANK(RC4),RC[-1]<>RC3),NOW(),RC4)"
Feuil1.[B12:B51].NumberFormat = "dd/mm/yy hh:mm:ss"
Feuil1.[D12:D51].NumberFormat = "dd/mm/yy hh:mm:ss"
MàJHeures
End Sub

Sub MàJHeures()
Feuil1.[A12:D51].Value = PLgTrv.Value
Temps = Now + TimeValue("00:00:01")
Application.OnTime Temps, "MàJHeures", Schedule:=True
End Sub

Sub Arrêt()
Application.OnTime Temps, "MàJHeures", Schedule:=False
End Sub
 
Dernière édition:

jo810000

XLDnaute Nouveau
Re : afficher l'heure d'un evenement dans une plage de cellules

Bonjour
merci de votre réponse

d'abord je doits vous dire que personne n'a trouve encore la solution

je n'y connais rien en programmation ;excusez moi
j'ai fait comme vous m'avez dit dans un module 1 j'ai mis tel quel Public MonTab1, MonTab2, je ne sais pas si il faut mettre sub et end sub a la fin et comment le positionner
pour le reste j'ai ouvert thisworkbook j'ai colle votre solution Private Sub Workbook_Open()
MonTab1 = Range("A12:A51")
MonTab2 = Range("C12:C51")
End Sub
sur workbook il y avait marque a droite open (je sais pas si c'est cela qu'(il faut)
après je suis allé sur feuille 1 j(ai collé Private Sub Worksheet_Calculate()
For i = 1 To 39
If Cells(11 + i, 1) <> MonTab1(i, 1) Then
Cells(11 + i, 2) = Time
MonTab1(i, 1) = Cells(11 + i, 1)
End If
If Cells(11 + i, 3) <> MonTab2(i, 1) Then
Cells(11 + i, 4) = Time
MonTab2(i, 1) = Cells(11 + i, 3)
End If
Next
End Sub
ca me marque incompatibilité de type erreur d'exécution "13":
donc je ne sais absolument pas ce qu'il faut faire??
 

jo810000

XLDnaute Nouveau
Re : afficher l'heure d'un evenement dans une plage de cellules

bonjour
j'ai essaye votre solution
mais rien ne se passe ,désolé je ne suis pas programmeur et je ne peux vous dire d'où vient l'erreur
j'apour le moment personne n'a trouve la solution colle directement les liens DDE dans les colonnes A et C mais aucune heure ne s'affiche au changement des valeurs dans les cellules
pour le moment personne ne s'est approché de la solution
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG