bonjour tout le monde,

Je souhaite faire un copie coller sur une application sur 2 champs.
Le passage d'un champ à l'autre se fait avec la touche TAB.

En cherchant sur internet j'ai pu concevoir ce code à titre d'essai :

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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Dim nm As String
Dim nm1 As String
 
sub test()
 
nm = Sheets("Feuil1").Range("d10").Value    'je copie nm dans une variable pour l'essai mais la source pourra être un texte issue d'une variable
nm1 = Sheets("Feuil1").Range("d11").Value   'je copie nm dans une variable pour l'essai mais la source pourra être un texte issue d'une variable
 
Clipboard (nm)  'mis dans le presse papier
Application.OnKey "^v", "test2" 'j'attends que l'utilisateur appui sur touche CTRL + V  qui est le déclencheur, test2 est la macro appelé et ainsi je colle le 2ieme
'pour les touches de fonction : "{ }" alors que les autres touches " "
 
End Sub
 
Sub test2()
 
Application.SendKeys "{TAB}", True    'je tabule sur le clavier
Clipboard (nm1)     'je place la 2ieme donnée dans le presse papier
Application.SendKeys "^v", True       'je réalise CTRL + V pour coller le presse papier
Application.OnKey "^v", ""  'je réalise l'arrêt de onkey
 
End Sub
 
Function Clipboard(Optional StoreText As String) As String
'Pour copier Clipboard ActiveCell
'Pour coller MsgBox Clipboard
Dim x As Variant
    x = StoreText 'Stocker comme variante pour la prise en charge de VBA 64 bits
    'Créer un objet HTMLFile
    With CreateObject("htmlfile")
        With .parentWindow.clipboardData
            Select Case True
                Case Len(StoreText)
                'Écrire dans le presse-papiers
                    .setData "text", x
                Case Else
                'Lire depuis le presse-papiers (aucune variable transmise)
                Clipboard = .GetData("text")
            End Select
        End With
    End With
 
End Function
la fonction clipboard sert à mettre en copie mes données d'une variable dans le presse papier

Mon problème est, après plusieurs tests que le copie colle ne fonctionne pas, même sur une feuille excel !

Qu'est ce qui pose problème dans mon code
Je pense que le premier colle vient du fait de l'écouteur : Comment on fait pour attendre la fin de l’exécution de colle pour passer la commande onkey ?
et ensuite pourquoi le 2ieme colle ne s’exécute pas ? je n'ai pas de réponse là !

Merci pour votre aide,

cordialement