antha
XLDnaute Occasionnel
[Résolu] Application.Ontime et procédure avec arguments
Bonjour à tou(te)s !
Je cherche à séquencer une suite de touches sur IE à partir d'Excel.
Pour cela, je dois insérer des pauses dans la procédure.
J'ai trouvé une méthode en passant par Sleep(), mais l'ordonnancement des touches ne se fait pas correctement.
Je suis donc passé par Application.Ontime. Tout marche correctement à un détail près.
Je voudrais qu'entre certains Sendkeys, il utilise une date que je passe en variable. Le problème.....c'est que je n'arrive pas à passer la variable quand j'appelle ma procédure avec Ontime. J'ai bien trouvé une méthode sur un autre forum, mais cela ne fonctionne pas.
EDIT :
J'arrive finalement à faire passer les valeurs à la seconde procédure.
En revanche, avec la même syntaxe, cela ne marche pas de la 2e à la 3e proc.
Au lieu de chercher "Select_Actes" avec comme arguments les dates rentrées, il cherche "Select_Actes 01/01/2009,15/01/2009" (avec les dates en format purement numérique) et forcément il ne trouve pas... !
EDIT 2 :
En fait il semblerait qu'il ne conserve pas la date au format jj/mm/aaaa lorsqu'il passe la variable à la seconde procédure : elle prend un format numérique.
J'ai essayé en mettant Date_D = CStr(Date_D), mais cela ne change rien ...
Je vous mets le code que j'utilise... Que faudrait-il changer ?
Merci de votre aide,
Bonne journée.
Puis :
Bonjour à tou(te)s !
Je cherche à séquencer une suite de touches sur IE à partir d'Excel.
Pour cela, je dois insérer des pauses dans la procédure.
J'ai trouvé une méthode en passant par Sleep(), mais l'ordonnancement des touches ne se fait pas correctement.
Je suis donc passé par Application.Ontime. Tout marche correctement à un détail près.
Je voudrais qu'entre certains Sendkeys, il utilise une date que je passe en variable. Le problème.....c'est que je n'arrive pas à passer la variable quand j'appelle ma procédure avec Ontime. J'ai bien trouvé une méthode sur un autre forum, mais cela ne fonctionne pas.
EDIT :
J'arrive finalement à faire passer les valeurs à la seconde procédure.
En revanche, avec la même syntaxe, cela ne marche pas de la 2e à la 3e proc.
Au lieu de chercher "Select_Actes" avec comme arguments les dates rentrées, il cherche "Select_Actes 01/01/2009,15/01/2009" (avec les dates en format purement numérique) et forcément il ne trouve pas... !
EDIT 2 :
En fait il semblerait qu'il ne conserve pas la date au format jj/mm/aaaa lorsqu'il passe la variable à la seconde procédure : elle prend un format numérique.
J'ai essayé en mettant Date_D = CStr(Date_D), mais cela ne change rien ...
Je vous mets le code que j'utilise... Que faudrait-il changer ?
Merci de votre aide,
Bonne journée.
Code:
Sub Lance_IE
Dim a
Dim Date_D As String
Dim DAte_F As String
Date_D = InputBox("Date de début ?")
DAte_F = InputBox("Date de fin ?")
a = Shell("C:\Program Files\Internet Explorer\iexplore.exe http://campo.bsr.aphp.fr:7777/ARCCAM_CCP1ABC/", vbNormalFocus)
[B]Application.OnTime Now + TimeValue("00:00:02"), "'Login_CCAM " & date_D & "," & date_f & "'"
[/B]
End Sub
Puis :
Code:
Sub Login_CCAM(Date_D As String, DAte_F As String)
Application.SendKeys "LOGIN{TAB}MDP{TAB}~"
[B]Application.OnTime Now + TimeValue("00:00:02"), "'Select_Actes " & date_D & "," & date_f & "'"[/B]
End Sub
Code:
Sub Select_Actes(Date_D As String, DAte_F As String)
Application.SendKeys "{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}~"
Application.OnTime Now + TimeValue("00:00:02"), "'Choix_Serv " & date_D & "," & date_f & "'"
End Sub
Code:
Sub Choix_Serv(Date_D As String, DAte_F As String)
Application.SendKeys "{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}02{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}" & Date_D & "" & DAte_F & "~"
End Sub
Dernière édition: