[VBA-E] comment appliquer un msgbox à un groupe spécifique de textbox?

jamelie Messages postés 57 Date d'inscription mercredi 26 avril 2006 Statut Membre Dernière intervention 27 février 2008 - 23 mai 2006 à 10:59
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 23 mai 2006 à 16:50
Bonjour,
j'ai une userform qui contient un contrôle multipage. je souhaiterai appliquer un msgbox d'erreur de saisie spécifique à chaque page mais je n'y arrive pas.
Si je fais for each ctrl in userform1.page("nomdelapage").controls il me reconnait pas page et me met une erreur. et si je fais un if pour chaque textbox  j'ai plus de 300 fois le même code à écrire sachant qu'en plus s'il le message se déclenche il se declenche 1fois pour chaque erreur au lieu de  1fois pour toutes les erreurs en même temps.
y aurait-il une solution à mon problème?

Merci beaucoup.
Jamelie

1 réponse

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
23 mai 2006 à 16:50
Salut Jamélie,

essai ça :

A tous tes TextBox, met la Propriété Tag : VerifSaisie

dans ton projet, insère un Module & un Module de Classe
Nom du Module : ModuleTextBoxes
Nom du Module de Classe : TextBoxesClass
___________________________________________________________
Dans le Module, insère ce code :

'déclaration : remplacer 13 par le nombre total
Dim TextBoxes(1 To 13) As New TextBoxesClass


Sub Attribuer_Controls()

Dim ctl As Control

Dim TxBoxCount As Integer
TxBoxCount = 0

For Each ctl In NomUserForm.Controls 'met le nom de ta form
If ctl.Tag = "VerifSaisie" Then
TxBoxCount = TxBoxCount + 1

Set TextBoxes(TxBoxCount).TxBox = ctl
End If
Next ctl
NomUserForm.Show 'met le nom de ta form

End Sub
________________________________________________________
Dans le Module de Classe, insère ce code :

Option Explicit

Public WithEvents TxBox As MSForms.TextBox

Private Sub TxBox_Change()

'Là, tu mets le code que tu veux, quand on changera la valeur sur les TxBox, ça fera ce que tu veux (donc met ton code de vérif saisie)

End Sub

Une fois tout cela effectué, au lieu de lancer ton UserForm à l'ouverture du fichier (comme tu devais certainement le faire),
place Call ModuleTextBoxes.Attribuer_Controls

Voilou,

@ bientôt
Mortalino
0
Rejoignez-nous