Problèmes sur Sendkeys et Wait
Bonjour,
J'ai appris le VBA sur le tas, et je galère un brin sur l'utilisation de la fonction SendKeys... Le problème est simple : Quoi que je fasse, les fonctions SendKeys n'entre en application dans mon fichier Excel que lorsque la Macro est finie. Pour faciliter mes essais avec quelque chose de visuel j'ai pris un exemple basique trouvé sur un forum :
Code:
1 2 3 4 5 6 7 8 9 10
| Sub Test()
For I = 1 To 3
Cells(I, 4).Select
SendKeys "{F2}", True
SendKeys "A", True
SendKeys "{ENTER}", True
Next I
End Sub |
J'ai changé la valeur du Wait, mis des tempos, remplacé par des Application.SendKeys... Rien à faire. Systématiquement, ce code arrive en case D3, puis remplit les cases D3 à D5 de "A".
Mon soucis final vient du fait que je veut entrer puis sortir de chacune des cases du plage, et j'ai trouvé l'info sur le net que cette action n'est réalisable en VBA que via SendKeys{"F2"}. Recalculer ma feuille ne fonctionnera pas dans mon cas, puisque j'aimerais permettre sur une grande plage d'activer le Renvoi automatique à la ligne uniquement quand un alt+enter a été tapé, pas quand la chaine de caractère est trop longue pour être affichée.
Mon programme initial fonctionne pour ça d'ailleurs, il est même ultra basique, mais vu que les SendKeys s'effectue après la fin du programme, le ScreenUpdating est réactivé, et les grandes plages prennent une éternité à tourner... Rendant la fonction inutilisable. Pour info :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| Dim Cible As Range
Sub In_N_Out()
Application.ScreenUpdating = False
For Each Cible In Selection
SendKeys "{F2}"
SendKeys "{Enter}"
Next Cible
Application.ScreenUpdating = True
End Sub |
Je n'ai trouvé de solutions ni sur les forums ni sur les site dédiés au VBA. Est-ce que quelqu'un aurait une idée?
Merci par avance!