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é :
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
L'application Excel tourne, malheureusement, sur un Seven 64 bits et j'ai donc besoin du "ptrsafe" pour le "GetAsyncKeyState ".
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,