[VBA-E] comment appliquer un msgbox à un groupe spécifique de textbox?
jamelie
Messages postés57Date d'inscriptionmercredi 26 avril 2006StatutMembreDernière intervention27 février 2008
-
23 mai 2006 à 10:59
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 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
A voir également:
[VBA-E] comment appliquer un msgbox à un groupe spécifique de textbox?
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 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