Office 365 Boucle sur application.on time

Claudy

XLDnaute Impliqué
Bonjour à tous,
je sèche sur une petite macro en boucle:

J'aimerais exécuter le "cel = cel.Offset(0, 1).Value" ou "ActiveCell = ActiveCell.Offset(0, 1).Value"
toutes les trois secondes....

Sub testzaza()
For Each cel In Range("E7:E30")
Application.OnTime Now + TimeValue("00:00:03"), cel = cel.Offset(0, 1).Value
'ActiveCell = ActiveCell.Offset(0, 1).Value
Next

End Sub

Merci d'avance,

Claudy
 

job75

XLDnaute Barbatruc
Le 2ème argument de Application.Ontime doit être le nom d'une macro sous forme de texte...
 

Claudy

XLDnaute Impliqué
Sub diversClaudy()
'Range("E120").End(xlUp)(2).Select
ActiveCell = ActiveCell.Offset(0, 1).Value
End Sub

Sub testzaza()
For Each cel In Range("E7:E30")
Application.OnTime Now + TimeValue("00:00:03"), "diversClaudy"
'ActiveCell = ActiveCell.Offset(0, 1).Value
Next


End Sub

Comme ça?
 

BOISGONTIER

XLDnaute Barbatruc
Bonjour,

Exemple simple qui affiche l'heure dans une feuille Excel:

VB:
Dim temps
Sub majHeure()
ThisWorkbook.Sheets("feuil1").[A1] = Now
temps = Now + TimeValue("00:00:1")
Application.OnTime temps, "majHeure"
End Sub

Sub auto_open()
   majHeure
End Sub

Sub auto_close()
On Error Resume Next
Application.OnTime temps, Procedure:="majHeure", Schedule:=False
End Sub
Boisgontier
 

Fichiers joints

job75

XLDnaute Barbatruc
Bonjour JB,

Le but de ce fil est peut-être de créer une temporisation entre les entrées dans les cellules, alors utiliser :
VB:
Sub Test()
Dim c As Range, t#
For Each c In [E7:E30]
    c = c(1, 2)
    t = Timer + 3 'temporisation 3 secondes
    While Timer < t And t < 86400: DoEvents: Wend
Next
End Sub
Les cellules de la feuille restent accessibles pendant l'exécution ce qui ne serait pas le cas si on utilisait Application.Wait.

A+
 

Claudy

XLDnaute Impliqué
Bonjour et merci à Job 75....
Et voilà, je partage, il suffit de cliquer sur le graphique pour lancer la macro.
Bon dimanche,
Claudy
 

Fichiers joints

Haut Bas