[Vba] Module de classe: définition

Maxoverfred

XLDnaute Occasionnel
Bonjour, je ne m'en sors pas en voulant utiliser mon module de classe.

Le but:
Au démarrage de mon userform, je scanne tous les champs dont le label comprend 'date' et j'associe une fonction sur l'évènement on exit qui va contrôler si le champs est biend e type date et qu'il respecte le format désiré...
Cela a très bien marché quand je défini un masque de saisie.. mais maintenant que j'ai défini non plus des textbox mais des control car j'ai besoin de l'évènement on exit, cela ne va plus..

Mon code:

Dans mon module de classe:

Public WithEvents controldate As MSForms.Control

Private Sub controldate_AfterUpdate()
If IsDate(controldate) Then
controldate = Format(controldate, 'dd-mmm-yy')
Else
MsgBox 'Date format required: 'dd-mmm-yy'', vbCritical
End If
End Sub

Sur mon userform à l'initialisation:

Dim ctrldate() As New Classcontroledate
For Each ctrl In usrinput.Controls
If LCase(ctrl.Name) Like 'lbl_*' Or LCase(ctrl.Name) Like 'cmd*' Then
Else
If InStr(1, LCase(ctrl.Name), 'date', vbTextCompare) > 0 Then
nb = nb + 1
ReDim Preserve ctrldate(1 To nb)
Set ctrldate(nb).controldate = ctrl
End If
End If
Next


De l'aide serait la bienvenue, car j'en trouve très peu sur le net...

Merci et bon week end.
 

Discussions similaires

Statistiques des forums

Discussions
312 219
Messages
2 086 372
Membres
103 198
dernier inscrit
CACCIATORE