Test textbox

Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018 - 7 avril 2008 à 09:51
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Derniè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

23 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
7 avril 2008 à 10:27
tu peut reposter, en clair ?
0
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018
7 avril 2008 à 10:56
Re,
je voudrai en fait faire une verification sur tous les text et combo box, afin de n'en laisser aucun vide avnt la validation
merci
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
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
0
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018
7 avril 2008 à 11:18
re,
mon code ci dessus fonctionne bien jusqu au frame ou j ai mes4 optionbuton, mais accepte ma validation sans msg box apres,
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
7 avril 2008 à 11:23
c'est quoi, encore, cette histoire de OptionButtons ?
tu m'as dit:

"je voudrai en fait faire une verification sur tous les text et combo box, afin de n'en laisser aucun vide avnt la validation"

tu as juste a te calquer sur ce que je t'ai fait, et ajouter:
ElseIf TypeOf oCtl Is VB.OptionButton Then
...

comment se nomment tes OptionButtons
0
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018
7 avril 2008 à 11:30
re
BTN_Cheque , BTN_Prelevement, BTN_Virement et BTN_Especes en fonction de la selection ( 1 seul choix possible) il active la TXTbox correspondante
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
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....

non ?
0
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018
7 avril 2008 à 11:39
oui tout a fait , peux tu me dire si je suis parti sur de bonnes base avec mon code ou si je dois m orienter vers un autre code ?
Merci
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
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 ?
0
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018
7 avril 2008 à 11:50
re , surement moi, suis  novice ! je travaille avec excel 2007
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
7 avril 2008 à 11:55
donc en VBA...
ok
0
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018
7 avril 2008 à 12:02
ok, maintenant je saurai le preciser ...
merci
0
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Derniè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 Sub DisableControls()
  
   TXT_ChequeN°.Enabled = BTN_Cheque.Value  
   TXT_Prelevement.Enabled = BTN_Prelevement.Value 
   TXT_Virement.Enabled = BTN_Virement.Value 
   TXT_Especes.Enabled = BTN_Especes.Value
   
End Sub




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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
7 avril 2008 à 15:46
m'a l'air pas mal
0
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018
7 avril 2008 à 15:49
oui, mais j ai pas de msgbox apres "editeur" est ce que parce que mes optionbutton sont dans un frame ?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
7 avril 2008 à 15:55
a voir comment est fait ton Combobox... cherches peut etre a valider le ListIndex
0
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Derniè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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
7 avril 2008 à 16:27
pas de soucis avec tes frames

testes en pas a pas (F8)
0
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018
7 avril 2008 à 16:33
ok, merci
0
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Derniè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
0