Modules de classe pour contrôle de saisie

Troudz

XLDnaute Occasionnel
Bonjour,

Je viens de consulter pas mal de doc sur les modules de classe et j'avoue que j'ai encore beaucoup de mal à comprendre.

Si dans mon application, j'ai énormément de contrôles auxquels j'applique le même contrôle de saisie (genre "que des chiffres", "que des dates", "que des majuscules"...), ait il préférable d'utiliser des modules de classes plutôt que de copier le même code pour chaque contrôle ?

D'après ce que j'ai vu, cela paraît possible mais j'avoue avoir du mal à tout comprendre.

Si j'ai par exemple le contrôle de saisie "que des chiffres" suivant :
Code:
Private Sub Textbox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
        If KeyAscii < 48 Or KeyAscii > 57 Then
            Textbox1.BackColor = &HFF&
            KeyAscii = 0
        End If
End sub

Comment le "traduire" dans un module de classse ? Comment relier mes différents textbox à ce module de classe ?

Merci d'avance de votre aide.
 

James007

XLDnaute Barbatruc
Re : Modules de classe pour contrôle de saisie

Bonjour,

La même question a été abordée il y a juste deux jours sur le Forum ...
Ci-joint un exemple de module de classe pour Label à adapter aux TextBox ...

A +
:)
 

Pièces jointes

  • TestLabelClass.xls
    39.5 KB · Affichages: 106
  • TestLabelClass.xls
    39.5 KB · Affichages: 110
  • TestLabelClass.xls
    39.5 KB · Affichages: 111

Troudz

XLDnaute Occasionnel
Re : Modules de classe pour contrôle de saisie

Merci beaucoup James007.
Vu l'intitulé du post en question, j'étais loin de me douter que ça pouvait parler de module de classe ^^

Pour ceux qui voudraient se mettre aux modules de classe, je vous conseille cet exemple très bien fait : Excel Downloads - Exemples modules de classe

Toutefois, j'ai essayé de l'adapter à mon cas j'ai encore un soucis. Quelqu'un pourrait me dire d'où vient le soucis dans l'exemple ci - joint :

Regarde la pièce jointe Test module de classe.xls
 

Bebere

XLDnaute Barbatruc
Re : Modules de classe pour contrôle de saisie

bonjour Troudz,James
compare bien les codes et tu verras oublis et fautes
à bientôt
 

Pièces jointes

  • Test%20module%20de%20classe(1).xls
    33.5 KB · Affichages: 69
  • Test%20module%20de%20classe(1).xls
    33.5 KB · Affichages: 65
  • Test%20module%20de%20classe(1).xls
    33.5 KB · Affichages: 64

sigismond

XLDnaute Occasionnel
Re : Modules de classe pour contrôle de saisie

Bonjour à tous, Troudz, James, Bebere

J'ai une question d'ordre "philosophique" : Quel est ici l'apport d'un module de classe ?

ou formulé différemment : Que ne pourrais-t'on pas faire avec un module simple ?

Ma question ne vise pas à déstabiliser le fil du sujet, je suis comme tous les novices (en classe VBA), j'essaye de progresser.

Merci à qui peut m'éclairer.

Sigismond
 

skoobi

XLDnaute Barbatruc
Re : Modules de classe pour contrôle de saisie

Bonjour sigismond, le fil,

dans la majorité des cas, le module de classe sert à regrouper en un seul code l'ensemble des codes similaires entre différents contrôles d'un userform.
Par exemple, imagine 20 coches dans un userform pour lesquelles le code est le même. Et bien le module de classe permettra de regrouper tout ces contrôles en un seul pour un seul code.
Espérant avoir éclairé ta lanterne.
 

MJ13

XLDnaute Barbatruc
Re : Modules de classe pour contrôle de saisie

Bonjour à tous

Bébère: Je n'ai testé que ton fichier car j'aime bien les modules de classes.

J'ai donc rajouté un textbox (avec la souris avec Ctrl) et cela ne fonctionnait pas. Mais en changeant cette ligne, cela à l'air de fonctionner :).

Je pense que avec cela, on peut voir l'utilité des modules de classes (sinon, il y a plein d'exemples sur le forum avec une petite recherche :confused:).

Code:
Set Tbo(i).MaTextBox = obj
 

Troudz

XLDnaute Occasionnel
Re : Modules de classe pour contrôle de saisie

Merci à tous pour vos réponses et particulièrement à James007 qui m'a bien mis sur la voie.
J'ai bien compris d'où venait le soucis.
Il me reste à comprendre pourquoi on est obligés de passer par une variable tableau pour raccrocher un contrôle à un module de classe....
 

sigismond

XLDnaute Occasionnel
Re : Modules de classe pour contrôle de saisie

Bonjour Skoobi, Mj13

Merci d'avoir éclairé ma lanterne.
Je n'utilisais les modules de classe que pour créer des structures de données et pour y loger les méthodes associées.
Je soupçonne maintenant leur intérêt dans les interfaces utilisateurs. Je m'étais d'ailleurs déjà heurté au problème sans identifier de solution satisfaisante.

Sigismond
 

James007

XLDnaute Barbatruc
Re : Modules de classe pour contrôle de saisie

Merci à tous pour vos réponses et particulièrement à James007 qui m'a bien mis sur la voie.
J'ai bien compris d'où venait le souci.
Il me reste à comprendre pourquoi on est obligé de passer par une variable tableau pour raccrocher un contrôle à un module de classe....

Merci ... pour tes remerciements :)

La variable tableau est le moyen le plus simple de "réunir" tous les contrôles que tu veux traiter en un sous-ensemble homogène ...

A +
:)
 

Troudz

XLDnaute Occasionnel
Re : Modules de classe pour contrôle de saisie

Merci ... pour tes remerciements :)

:confused: Merci à toi d'avoir remercier mes remerciements (on arrête là sinon on en fini plus :p)

La variable tableau est le moyen le plus simple de "réunir" tous les contrôles que tu veux traiter en un sous-ensemble homogène ...

J'en conclu donc que ça n'est pas le seul moyen......
Je pinaye un peu mais vu que j'ai un immense userform avec beaucoup de contrôles, que seulement certains seront reliés à un module de classe et que les noms de tous les contrôles se ressemblent, je ne pourrais pas facilitement utiliser une boucle.

Je vais y arriver, je le sens ! (Au pire, je ferais des boucles de 1 :p)
 

Bebere

XLDnaute Barbatruc
Re : Modules de classe pour contrôle de saisie

un exemple plus complet
3 groupes
a et b entrées numériques c=a+b(lignes)
textbox4= total de c(colonnes)
à bientôt
 

Pièces jointes

  • Test%20module%20de%20classe(1).xls
    41.5 KB · Affichages: 66
  • Test%20module%20de%20classe(1).xls
    41.5 KB · Affichages: 61
  • Test%20module%20de%20classe(1).xls
    41.5 KB · Affichages: 58

YANN-56

XLDnaute Barbatruc
Re : Modules de classe pour contrôle de saisie

Bonsoir Troudz, aux éminents participants, et à ceux qui passeront par ici,

Je joins un exemple gérant un module de classe pour aider notre ami.

Je l'ai tiré d'une de mes applis pour répondre au plus vite.

La création dynamique peut rendre moins facile le processus... Il est certain!

Si Troudz, tu t'y retrouves, cela sera bien.
Sinon, je suis disposé à le reconstruire avec des contrôles préalablement établis.
(Ce qui devrait alléger la procédure d'une façon significative)

Il te sera, alors, sans doute, plus simple de comprendre dans ce dernier.

Tu regarde, et tu me dis.

Amicalement.

Yann
 

Pièces jointes

  • MOTEUR.zip
    22.7 KB · Affichages: 45
  • MOTEUR.zip
    22.7 KB · Affichages: 76
  • MOTEUR.zip
    22.7 KB · Affichages: 51
Dernière édition:

YANN-56

XLDnaute Barbatruc
Re : Modules de classe pour contrôle de saisie

Pour suivre:

Le classeur édulcoré ne nécessitant que dix lignes de code...

Ceci suite à mes regrets d'avoir joint un premier exemple un peu trop lourd.

Amicalement.

Yann

P.S. J'ai oublié comment adapté....

Code:
Dim MES_TEXTBOXES(30) As New MAJUSCULES_SAISIE ' Ici il y aurait à gérer le "(30)"

Merci d'avance à qui saura me le rappeler
 

Pièces jointes

  • MAJUSCULES.xls
    36.5 KB · Affichages: 55
  • MAJUSCULES.xls
    36.5 KB · Affichages: 57
  • MAJUSCULES.xls
    36.5 KB · Affichages: 55
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 216
Messages
2 086 351
Membres
103 195
dernier inscrit
martel.jg