Raccourci clavier et module de classe

Matt51140

XLDnaute Nouveau
Bonjour à tous,

J'utilise actuellement sur mes formulaires ce type de raccourci clavier :

Code:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

If KeyCode = 123 Then 'F12
CommandButton1_Click
End If

End Sub

Pour que cela soit efficace il faut que je duplique ce code pour chaque contrôle.

Comme c'est surtout des textbox, je cherche depuis peu, à utiliser un module de classe.
J'ai écrit ceci :

Code:
Option Explicit

Public WithEvents GroupTxt As MSForms.TextBox

Private Sub GroupTxt_Keydown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 123 Then
Userform1.CommandButton1_Click
End If
End Sub

Dans un module de classe (Classe 1).

J'ai placé ceci dans mon userform :
Code:
Option Explicit

Dim GTxt(100) As New Classe1


Private Sub UserForm_Initialize()
Dim Ctrl As Control
Dim N As Byte
For Each Ctrl In Me.Controls
    If TypeName(Ctrl) = "TextBox" Then
        N = N + 1
        Set GTxt(N).GroupTxt = Ctrl
    End If
Next Ctrl
End Sub

Hors dès que je saisie n'importe quoi dans une de mes textbox, la macro m'indique une erreur de compilation (membre de méthode ou de données introuvables) en m'indiquant cette partie du code :

Code:
Userform1[B].CommandButton1_Click[/B]

Je ne vois pas comment remplacer l'instruction.

Merci d'avance.

A+, Matt.
 

Matt51140

XLDnaute Nouveau
Re : Raccourci clavier et module de classe

Bonjour,

Si c'est cette procédure dont tu parles :

Code:
Private Sub GroupTxt_Keydown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 123 Then
Userform1.CommandButton1_Click
End If
End Sub

Quand je la passe en public même résultat.

A+
 

Dranreb

XLDnaute Barbatruc
Re : Raccourci clavier et module de classe

Bonjour.
Mettez exceptionnellement Public la procédure CommandButton1_Click au lieu de Private. Ça ne devrait pas avoir d'incidence sur sa qualité de procédure évènement pour ce bouton.
Edit: Joignez le fichier qu'on puisse étudier ce qui ne va pas pour que ça puisse forcément marcher.
 
Dernière édition:

Matt51140

XLDnaute Nouveau
Re : Raccourci clavier et module de classe

Re,

Merci beaucoup. Désolé j'ai mis un peu de temps à comprendre.
J'imagine que l'on peut généraliser cela. A chaque fois qu'avec un module de classe je voudrais agir sur une procédure d'un formulaire, il faudra que je mette celle-ci en Public ?
deuxième question, quelle sont les éventuelles incidences dont parle Dranreb ?

A+
 

Dranreb

XLDnaute Barbatruc
Re : Raccourci clavier et module de classe

quelle sont les éventuelles incidences dont parle Dranreb
Rien. J'aurais sans doute mieux fait de ne pas en parler. Je voulais dire qu'une procédure n'a pas à être Public pour n'être utilisée qu'en tant que procédure évènement d'un objet défini dans le module, mais que ça ne gène pas son fonctionnement en tant que tel si elle est Public pour d'autres raisons.
 

Discussions similaires

Réponses
29
Affichages
997

Statistiques des forums

Discussions
312 400
Messages
2 088 087
Membres
103 711
dernier inscrit
mindo