Un petit tour sur les modules de classe

GeoTrouvePas

XLDnaute Impliqué
Bonjour tout le monde,

Je vais tenter de faire court et suffisament clair :

- J'ai X Userforms comportant plusieurs ComboBox.
- Sur chaque Userform, j'ai un Label nommé "LabelAlerte"
- J'ai créée le module de classe suivant pour modifier le backcolor de ces combos en fonction de leur contenu :

Code:
Public WithEvents MonCombo As MSForms.ComboBox
Private Sub MonCombo_Change()
    If MonCombo = "" Then
        MonCombo.BackColor = &HFF&
    Else
        MonCombo.BackColor = &H80000005
    End If
End Sub



Ma question : Je voudrais que mon module de classe fasse également apparaître ou disparaître le LabelAlerte situé sur le même Userform que le Combobox qui vient d'être modifié. J'ai essayé de rajouter :
Code:
Me.LabelAlerte.Visible = False
mais apparement la valeur de "Me" n'est pas utilisable dans le module de classe.

Auriez vous une idée ?

Je vous remercie par avance
 
Dernière édition:

YANN-56

XLDnaute Barbatruc
Re : Un petit tour sur les modules de classe

Bonsoir Laetitia, et à ceux qui passeront par ici,
une autre approche en supprimant "grand-père et grand-mère"
Heu! J'espère que la police ne navigue pas par ici! :mad:

Je vais observer de plus près mes 3 + 1 petits enfants :)

peu pas faire plus!!!

En matière de VBA, il y a toujours meilleure solution (Ou presque)...
Mais avec ce que tu as apporté sur le sujet; je vois mal comment faire mieux!!!

J'avais tenté cette initialisation de l' "es",
mais échec par suite, sans doute, d'une erreur fatale de syntaxe!

Quoiqu'il en soit, je me suis amusé à provoquer différents cas de figure. (Voir ci-joint)
Le procédé n'en a rien à fiche de l'arbre généalogique... Et c'est tant mieux!

J'espère que GeoTrouvePas repassera par ici, et que par ce biais, il retrouvera plus facilement ses petits!

Je suis vachement heureux de cet échange enrichissant pour ma pomme, et j'espère aussi pour les "Silencieux".
(Encore une fois, je pense avoir été bien inspiré lorsque j'ai rédigé ma signature en Bleu)

Merci encore à toi, quant aux autres, la liste serait trop longue!

Amicalement et sincèrement.

Yann
 

Pièces jointes

  • AUTRE_3.zip
    22.1 KB · Affichages: 51

GeoTrouvePas

XLDnaute Impliqué
Re : Un petit tour sur les modules de classe

Bonjour tout le monde,

Désolé de n'avoir pas répondu avant mais ces derniers jours ne m'ont laissé que peu de temps pour ça et, vu la mobilisation dont vous avez fait preuve, je ne voulais pas vous répondre à la va vite.

Pour "recentrer" un peu le problème, il vaut peut être mieux que je précise le problème. J'ai un très grand userform sur lequel j'ai des tonnes de contrôles (Combo, Textbox, Checkbox...) associés des contrôles de saisie (que des lettres, que des chiffres, tout en majuscules etc...).

Avant, lorsque l'utilisateur saisissait par exemple un caractère erroné, je lui signalais pas un Msgbox. Mais j'en ai eu marre de bloquer la saisie et de lui faire perdre du temps à le valider à chaque fois.

Du coup j'ai eu l'idée d'afficher ce message dans un Label, c'est tout aussi efficace et moins contraignant. Ce label devient visible lors d'une erreur de saisie (avec un message spécifique à l'erreur) et disparaît lorsqu'une saisie correcte est effectuée.

Etant donné que mes contrôles de saisie se faisaient principalement via des modules de classe et dans le but de ne pas faire une usine à gaz, j'ai voulu intégrer la gestion de ce Label dans mes modules de classe.

Il "suffisait" pour cela de partir du contrôle d'où avait été commise l'erreur, de remonter jusqu'au Userform puis de redescendre vers le LabelAlerte. ça paraît si simple à faire... ^^.

Le problème surgit rapidement quand le contrôle duquel on part se situe dans un Frame voir, dans deux ou trois. Il faut pour cela remonter plusieurs fois vers le Parent.

Hasco a rapidement trouvé en faisant une boucle qui identifie le moment où le Parent est un Userform et non plus un Frame. Parfait !

A un détail près : la macro plante si l'on est en mode "Arrêt sur toutes les erreurs".

Etant donné que mon application va être largement diffusée et que je ne peux pas anticiper la configuration de chaque poste, j'ai préféré partir sur la première solution de Laëtitia qui consiste à définir le LabelAlerte lors de l'initialisation du Userform. Vraiment impeccable cette façon de faire.

En tout cas, je vous remercie ENORMEMENT pour votre mobilisation. Je suis ravi que mon post vous ait intéressé. En tout cas, il m'a permis de progresser sur les multiples façon d'aborder un problème.
 
Dernière édition:

YANN-56

XLDnaute Barbatruc
Re : Un petit tour sur les modules de classe

Bonjour GeoTrouvePas, et à ceux qui passeront par ici,

Juste une question:
Utilises-tu le mariage de mon, idée issue de l'enseignement de Pierrot.
(USF en variable) avec l'apport efficace de Laetitia.

Si oui, il te serait facile de rectifier automatiquement, par le biais du Groupe,
une saisie non-conforme à tes souhaits! Sans se farcir des Msgbox.

Et dans ce dernier cadre, si la saisie est vraiment débile; on ne bouge rien!
L'utilisateur aura compris de lui-même!

Amicalement.

Yann
 

Discussions similaires

Statistiques des forums

Discussions
312 506
Messages
2 089 111
Membres
104 037
dernier inscrit
damsau