Gil369
Messages postés120Date d'inscriptionmardi 25 mars 2008StatutMembreDernière intervention 7 novembre 2018
-
7 avril 2008 à 09:51
Gil369
Messages postés120Date d'inscriptionmardi 25 mars 2008StatutMembreDernière intervention 7 novembre 2018
-
9 avril 2008 à 14:35
Bonjour, j ai un formulaire avec 3 txtbox , 5 combobox et surtout 4 txtbox mais dont une seule est active en fonction de la selection d un des 4 optionbutton positionne dans un frame, que dois je ajouter a mon code pour tester le tout avant de valider ?
Merci
Private Function TestText(Obj As Object, Txt As String) As Boolean
TestText = True
If Obj.Text = vbNullString Then
Call MsgBox("Vous devez entrer " & Txt)
Obj.SetFocus
TestText = False
End If
End Function
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 7 avril 2008 à 11:02
ce genre de chose :
Dim oCtl As Object
Dim bIsOk as Boolean
bIsOk = True
For Each oCtl In Me.Controls
If TypeOf oCtl Is VB.ComboBox Then
If oCtl.ListIndex = -1 Then
bIsOk = False
Endif
ElseIf TypeOf oCtl Is VB.TextBox Then
If oCtl.Text = vbNullString Then
bIsOk = False
End if
EndIf
Next oCtl
If not bIsOk Then
Msgbox "Merci de remplir tous les champs !!!!"
End If
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 7 avril 2008 à 11:35
donc c'est plus fin que ce que permet de faire le code que je t'ai fournis....
en effet, certaines textbox peuvent etre vides, a condition qu'elles soient désactivées....
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 7 avril 2008 à 11:45
rien ne t'empeche de faire ce genre de test :
Dim oCtl As Object
Dim bIsOk as Boolean
bIsOk = True
For Each oCtl In Me.Controls
If TypeOf oCtl Is VB.ComboBox Then
If oCtl.ListIndex = -1 And oCtl.Enabled=True Then
bIsOk = False
Endif
ElseIf TypeOf oCtl Is VB.TextBox Then
If oCtl.Text = vbNullString And oCtl.Enabled=True Then
bIsOk = False
End if
EndIf
Next oCtl
NB. je t'ai filé du VB6 alors que tu as choisi VB2005
qui s'est trompé ? toi ou moi ?
Gil369
Messages postés120Date d'inscriptionmardi 25 mars 2008StatutMembreDernière intervention 7 novembre 2018 7 avril 2008 à 15:41
re,
tout fonctionne bien pour "date" "piece N°" et "editeur", mais accepte la validation sans afficher de msgbox pour le reste.
Est ce que la base du code est bonne ?
Merci
Private Function TestText(Obj As Object, Txt As String) As Boolean
TestText = True
If Obj.Text = vbNullString Then
Call MsgBox("Vous devez entrer " & Txt)
Obj.SetFocus
TestText = False
End If
End Function
Private Sub BTN_Cheque_Click()
Call DisableControls
End Sub
Private Sub INT_ChequeN°_Click()
End Sub
Private Sub TXT_ChequeN°_Change()
End Sub
Private Sub BTN_Valider_Click()
'On teste la saisie de la date...
If Not TestText(TXT_Date, "une date") Then Exit Sub
'On teste la saisie de la pieceN...
If Not TestText(TXT_PieceN°, "un numéro de pièce") Then Exit Sub
'On teste la saisie de l'editeur...
If Not TestText(ComboBox_Editeur, "un éditeur") Then Exit Sub
'On teste la saisie de la nature de l operation
If BTN_Cheque.Value = True Then
If Not TestText(Me.TXT_ChequeN°, "Cheque") Then Exit Sub
ElseIf BTN_Prelevement.Value = True Then
If Not TestText(Me.TXT_Prelevement, "Prelevement") Then Exit Sub
ElseIf BTN_Virement.Value = True Then
If Not TestText(Me.TXT_Virement, "Virement") Then Exit Sub
ElseIf BTN_Especes.Value = True Then
If Not TestText(Me.TXT_Especes, "Especes") Then Exit Sub
Gil369
Messages postés120Date d'inscriptionmardi 25 mars 2008StatutMembreDernière intervention 7 novembre 2018 7 avril 2008 à 16:11
c est pas un combobox, ce sont des boutons d option qui active un textbox en fonction du choix ( 1 seul possible sur les 4), je les ai mis dans un frame
Gil369
Messages postés120Date d'inscriptionmardi 25 mars 2008StatutMembreDernière intervention 7 novembre 2018 7 avril 2008 à 21:13
re, ça fonctionne " presque" : j ai mes txtbox active en fonction du choix d'un bouton option mais un message " erreur d execution 438" sur la ligne : If Obj.Text = vbNullString Then, ou dois je intervenir svp
merci