Difficulté avec Application.OnTime et procédure paramétrée

Magic_Doctor

XLDnaute Barbatruc
Bonjour,

J'ai une procédure paramétrée : ClicsX(cel as range)
Je veux, à partir d'un module de feuille, l'appeler avec Application.OnTime.
J'ai tenté ceci :
VB:
If Not Intersect(target, [TableauCF]) Is Nothing Then
    clic = clic + 1
    If clic = 1 Then Application.OnTime Now + TimeValue("0:0:2"), "ClicsX(" & CStr(target) & ")"
End If
Ça n'a pas marché...

Merci pour m'indiquer comment s'y prendre.
 

Magic_Doctor

XLDnaute Barbatruc
Re : Difficulté avec Application.OnTime et procédure paramétrée

Trouvé, en cherchant sur le net...
Syntaxe un peu bizarroïde, mais enfin...

Procédure paramétrée : ClicsX(cel as String)
VB:
If Not Intersect(target, [TableauCF1]) Is Nothing Then 'plage de cellules des familles
    clic = clic + 1
    If clic = 1 Then Application.OnTime Now + TimeValue("0:0:2"), "'ClicsX """ & target.Address & """'"
End If
 

Dranreb

XLDnaute Barbatruc
Re : Difficulté avec Application.OnTime et procédure paramétrée

Bonsoir.
Vous ? Non… Vous rendez vous compte, vous, vous avez réussi à m'apprendre quelque chose !
Eh oui ! Et je vous en remercie !
Si là vous appelez ClicsX depuis une Worksheet_SelectionChange et si vous voulez aussi pouvoir l'appeler dans d'autres contextes en lui transmettant un Range, vous pouvez aussi faire comme ça :
VB:
Application.OnTime Now + TimeValue("00:00:02"), "ClicsX"
…
…
Sub ClicsX(Optional ByVal Cel As Range)
If Cel Is Nothing Then Set Cel = ActiveCell

Mais il y a ça aussi, maintenant :
VB:
Sub TestX()
Application.OnTime Now + TimeValue("00:00:02"), "'ClicsX ""A1""'"
End Sub
Sub ClicsX(ByVal ParamCel)
Dim Cel As Range
If TypeName(ParamCel) = "Range" Then Set Cel = ParamCel Else Set Cel = ActiveSheet.Range(ParamCel)
MsgBox Cel.Address
End Sub
Cordialement.
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
133

Statistiques des forums

Discussions
312 180
Messages
2 085 993
Membres
103 081
dernier inscrit
jeromeolivier.raymond@wat