Bonjour,
J'ai développé une fonctionnalité sous Excel qui permet de faire de la saisie semi-automatique dans des userforms avec un code assez simple dans l'ensemble qui a très bien fonctionné :
L'application Excel tourne, malheureusement, sur un Seven 64 bits et j'ai donc besoin du "ptrsafe" pour le "GetAsyncKeyState ".
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 Private Declare PtrSafe Function GetAsyncKeyState Lib "user32" (ByVal vKey As Integer) As Integer Sub TestTouche() Dim rng As Range Dim i As Long If (GetAsyncKeyState(8) <> 0) Then Else i = Len(F_USF.txt_truc.Value) Set rng = f_data.Range("J2:J" & f_data.Range("A65536").End(xlUp).Row).Find(F_USF.txt_truc.Value & "*", , , xlWhole) If rng Is Nothing Then F_Observations.txt_observation.SelLength = 0 Else F_USF.txt_truc.Value = f_data.Range("J" & f_data.Range("J2:J" & f_data.Range("A65536").End(xlUp).Row).Find(F_USF.txt_truc.Value & "*", , , xlWhole).Row) F_USF.txt_truc.SelStart = i F_USF.txt_truc.SelLength = Len(F_USF.txt_observation.Value) - i End If End If End Sub
Cependant, depuis une mise à jour Windows de décembre 2014, cette déclaration provoque une erreur et je ne vois pas comment corriger ce problème...
Je suis preneur de toute solution.
Cordialement,
Partager