Limites de SendKeys dans macro Excel

Signaler
Messages postés
4
Date d'inscription
mardi 11 janvier 2005
Statut
Membre
Dernière intervention
13 janvier 2009
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
Bonjour,

quel est le nombre maximum de commandes que SendKeys peux envoyer dans une macro Excel?
J'ai fais une petite macro mais au bout de 5 touches, les suivantes ne sont plus envoyées.

Merci pour votre réponse.

Antoine.

6 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
Tu pourrais donné le code utilisé cela pourrait nous aider à te répondre de manière efficace.

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Bonjour,

1) J'espère que tu n'essayes pas de piloter une autre appli par des sendkeys successifs... (ce n'est pas une bonne idée)
2) Si tu y tiens, toutefois : pense à Doevents, quand même ...
3) Sendekeys est toujours plein de surprises
Messages postés
4
Date d'inscription
mardi 11 janvier 2005
Statut
Membre
Dernière intervention
13 janvier 2009

Re-bonjour, voici le code.
Effectivement je tente de piloter Outlook 2003
---
Sub OL()
    Dim MyProcID As Integer
   
    MyProcID = Shell("outlook.exe", vbMaximizedFocus)
    Attendre 3
    AppActivate MyProcID
    Attendre 2
    SendKeys "%fx{ENTER}mm{ENTER}"
End Sub
---

Comment fonctionne Doevents?

Merci,

Antoine.
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Ouais... tu vas au casse-pipe, ainsi, c'est sur... (pas bon de piloter ainsi... avec des sendkeys ....)
et c'est quoi, ta procédure attendre ? Un sleep ou autre chose ?


remplace-là (à tout hasard) par un doevents, pour voir ...(partout où tu l'utilises)


et mets tes sendkeys deans des envois distincts, également séparés par des Doevents.
Messages postés
4
Date d'inscription
mardi 11 janvier 2005
Statut
Membre
Dernière intervention
13 janvier 2009

Si j'ai bien suivi, je met des Doevents() avant chaque SendKeys()
PS voici le code de attendre:
---
Sub Attendre(Secondes As Integer)
' Cette procédure temporise pendant le nombre de secondes qu'on lui transmet en argument
    Dim Début As Long, Fin As Long, Chrono As Long
    Début = Timer
    Fin = Début + Secondes
    Do Until Timer >= Fin
        DoEvents
    Loop
End Sub
---
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Tu peux ajouter un paramètre à Sendkeys Vrai/Faux, je pense (voir l'aide...)

Je ne sais pas ce que tu cherches à faire avec ces SendKeys, mais je suis tout à fait d'accord avec JMF... ce n'est pas une très bonne idée...

MPi