Pb vider la valeur du keycode avant initialisation Userform

Bonjour à tous,

Je suis sur un fichier qui doit être "piloté" via le clavier numérique,

Lorsque je valides la saisie de ma colonne C avec la touche enter la sélection passe bien en colonne D et ouvre mon userform, Sélectionne la première valeur et passe à la colonne E

Par contre si je valide ma saisie de ma colonne C avec la touche tab je passe en colonne D et mon userform s'ouvre mais permet à l'utilisateur de faire sa sélection.

Si quelqu'un peu jetez un œil la dessus, je patauge complétement

Ou si vous avez des idées pour contourner le problème,

Re- le forum

Je deviens dingue avec cette histoire dans mon code suivant si je met un point d'arret pour voir se qui se passe, sur If target.Value = "" Then puis play pour reprendre le code tout fonctionne bien

Private Sub Worksheet_SelectionChange(ByVal target As Range)

i = ActiveCell.Column

If i = 3 Then

If ActiveCell.Value <> "" Then Exit Sub

If Not Application.Intersect(target, Range("C:C")) Is Nothing Then

If i <> 2 Then

'VerrNum

If target.Value = "" Then

Load formimg

formimg.Show

Exit Sub

End If

End If

End If

Else

End If

par contre si j'exécute sans point d'arrêt la valeur keycode=13 reste en mémoire et du coup exécute le debut de ma maro de mon userform qui est :

If keycode = 13 Then ''''''Enter
        ActiveCell = ListBox1.Value
        Unload Me
        End If

y a t- il un moyen de vider la mémoire avant ou lors de l'initialisation de du userform?

Salut,

Je vais tenter d'y jeter un coup d'oeil mais je ne promets rien ^^

ECG

Merci si tu as des questions n'hésite pas. Je continue d expérimenté. Je cherches dans ds le controle quelques chose équivalent aux actions des boutons du ruban

Du style if enter= pressed then

Et ne plus utiliser keycode = 13

Je renomme le sujet car le problème ne vient pas vraiment du selection_Change mais bien que la valeur du keycode qui est gardée en mémoire....

Pour l'instant la solution viable que j'ai trouvée est une solution bout de ficelle je remplace dans mon userform la validation via "Enter" par la touche 0

Mais c'est pas très satisfaisant,

Si vous avez des idées pour faire celà proprement......Je suis preneur

Merci à ceux qui prennent le temps de lire le sujet

Bonsoir

à tester

Et sur Key_Down au lieu de KeyUp ?

Private Sub ListBox1_KeyUp

Private Sub ListBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    With Me.ListBox1
        If KeyCode = 13 Then ''''''Enter
        ActiveCell = ListBox1.Value
        Unload Me
        End If
' etc...
    End With

crdlt,

André

Super Andre13 !!

Bon ca fonctionne et je viens de comprendre la différence entre keyup / keypress/ et keydown

Un grand merci, je test demain avec douchette et clavier numérique et si pas de nouveau problème je valide !!

Rechercher des sujets similaires à "vider valeur keycode initialisation userform"