Test textbox

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

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
tu peut reposter, en clair ?
Messages postés
120
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
7 novembre 2018

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
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
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
Messages postés
120
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
7 novembre 2018

re,
mon code ci dessus fonctionne bien jusqu au frame ou j ai mes4 optionbuton, mais accepte ma validation sans msg box apres,
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
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
Messages postés
120
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
7 novembre 2018

re
BTN_Cheque , BTN_Prelevement, BTN_Virement et BTN_Especes en fonction de la selection ( 1 seul choix possible) il active la TXTbox correspondante
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
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 ?
Messages postés
120
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
7 novembre 2018

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
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
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 ?
Messages postés
120
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
7 novembre 2018

re , surement moi, suis  novice ! je travaille avec excel 2007
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
donc en VBA...
ok
Messages postés
120
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
7 novembre 2018

ok, maintenant je saurai le preciser ...
merci
Messages postés
120
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
7 novembre 2018

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
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
m'a l'air pas mal
Messages postés
120
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
7 novembre 2018

oui, mais j ai pas de msgbox apres "editeur" est ce que parce que mes optionbutton sont dans un frame ?
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
a voir comment est fait ton Combobox... cherches peut etre a valider le ListIndex
Messages postés
120
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
7 novembre 2018

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
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
pas de soucis avec tes frames

testes en pas a pas (F8)
Messages postés
120
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
7 novembre 2018

ok, merci
Messages postés
120
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
7 novembre 2018

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