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
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
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