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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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!