Remplir textbox

Fermé
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018 - 16 avril 2008 à 13:35
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 17 avril 2008 à 19:08
Bonjour,
afin de ne laisser aucun textbox vide j utilise :

Private Function TestText(Obj As Object, Txt As String) As Boolean
TestText = True
If Obj.Text = vbNullString Then
Call MsgBox("Vous devez entrer " & Txt, vbExclamation, "Impératif !")
Obj.SetFocus
TestText = False
End If
End Function

et dans le bouton valider :

Private Sub BTN_Valider_Click()
Dim objControl As Control
Dim i As Long

'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

et je voudrai avoir le meme message pour ne pas oublier de selectionner 1 bouton radio sur 4 possible

Merci

20 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
16 avril 2008 à 13:46
Re,

Dans le UserForm_Iniatialize() ou Activate() mets tous les boutons ratio BT_ratio1.Value = False etc ....
Sur : Private Sub BTN_Valider_Click() fais un test :
If (BT_ratio1.Value = False) Or (Bt_ratio2.Value = False) Or _
         (Bt_ratio3.Value = False) Or (Bt_ratio3.Value = False)  Then
   MsgBox "blablabla",VbExclamation,"Message Erreur"
   Exit Sub
End If


;o)

polux
0
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018
16 avril 2008 à 14:13
Re,
j ai mis

Private Sub userform_initialize() je dois renomer userform ?
BTN_Cheque1.Value = False
BTN_Prelevement2.Value = False
BTN_Virement3.Value = False
BTN_Especes4.Value = False
End Sub

et dans BTN_valider

'On teste la saisie de la nature de l operation
If (BTN_Cheque1.Value = False) Or (BTN_Prelevement2.Value = False) Or _
(BTN_Virement3.Value = False) Or (BTN_Especes4.Value = False) Then
MsgBox "blablabla", vbExclamation, "Message Erreur"
Exit Sub
End If
j ai message erreur de compilation a l ouverture du formulaire sur : BTN_Cheque1

merci
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
16 avril 2008 à 14:26
Autant pour moi ... remplace les "Or" par "And"
0
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018
16 avril 2008 à 14:45
re, j ai toujours le meme message,
j ai bien remplacé les noms des boutons ?
dois je enlever le End If sachant que j ai d autres conditions derriere dans le bouton valider ?
merci
0

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

Posez votre question
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
16 avril 2008 à 15:03
Non il ne faut pas enlever le End If ... il faut que tu remplaces UserForm par le nom de ton formulaire !!!
0
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018
16 avril 2008 à 15:23
re ok, j avais deja essayé de nommer mon formulaire mais j ai quand meme le message d erreur de compilationsur : le bouton valider BTN_Cheque1

Private Sub FRM_Formulaire_de_saisies_initialize()
BTN_Cheque1.Value = False
BTN_Prelevement2.Value = False
BTN_Virement3.Value = False
BTN_Especes4.Value = False
End Sub

bouton valider :

'On teste la saisie de la nature de l operation
If (BTN_Cheque1.Value = False) And (BTN_Prelevement2.Value = False) And _
(BTN_Virement3.Value = False) And (BTN_Especes4.Value = False) Then
MsgBox "nature de l opération", vbExclamation, "Message Erreur"
Exit Sub
End If

dois je mettre ce test avant les autres ? sachant qu il y en a 3 avant et 5 derriere

merci
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
16 avril 2008 à 16:58
non, peu importe ou se trouve le test ... je ne comprends pas, ça marche parfaitement chez moi ... j'aimerai savoir où se situe cette procédure : Private Sub FRM_Formulaire_de_saisies_initialize() et ou se situe celle-ci : Private Sub BTN_Valider_Click()
0
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018
16 avril 2008 à 22:18
Bonsoir,
j avais mis : Private Sub FRM_Formulaire_de_saisies_initialize() en debut de userform
et : Private Sub BTN_Valider_Click() en fin
suite a ta question, j ai pensé que la position pouvait avoir une importance et j ai donc hierarchisé l ensemble en suivant
l ordre de remplissage logique de mon formulaire, mais j ai toujours le meme message d erreur de compilation sur :

'On teste la saisie de la nature de l operation
If (BTN_Cheque1.Value = False) And (BTN_Prelevement2.Value = False) And _
(BTN_Virement3.Value = False) And (BTN_Especes4.Value = False) Then
MsgBox "nature de l opération", vbExclamation, "Message Erreur"
Exit Sub
End If

j ai egalement suivi la hierarchie dans le BTN_Valider
Je n ose pas te mettre l integralite du code afin de ne pas encombrer le forum
Merci
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
17 avril 2008 à 11:06
bonjour,

tu n'aurais pas aussi un Private Sub FRM_Formulaire_de_saisies_Activate() sur ton userform ? ce qui m'étonne c'est qu'il y ai un "i" minuscule à initailize .... est-ce une erreur de frappe ?
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
17 avril 2008 à 11:13
je crois que j'ai compris le problème.

C'est dans UserForm_Activate() que tu dois mettre le code :
BTN_Cheque1.Value = False
BTN_Prelevement2.Value = False
BTN_Virement3.Value = False
BTN_Especes4.Value = False
0
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018
17 avril 2008 à 13:55
Bonjour, j ai effectivement un private su activate sur :

Private Sub userform_activate() 'plein écran
With Me
.StartUpPosition = 3
.Width = Application.Width
.Height = Application.Height
.Left = 0
.Top = 0
End With
Module1.InitComboBox
End Sub ce code est le premier de mon userform pour activer le mode plein ecran


j avais egalement "oublié" de mettre une majuscule a Initialize ( mais pas de changement), j ai donc remplacé Initialize par Activate :

Private Sub FRM_Formulaire_de_saisies_Activate() 'False sur bouton option
BTN_Cheque1.Value = False
BTN_Prelevement2.Value = False
BTN_Virement3.Value = False
BTN_Especes4.Value = False
End Sub

mais ai toujours le meme message " erreur de compilation, variable non definie" sur le BTN_Valider

Private Sub BTN_Valider_Click()
Dim objControl As Control
Dim i As Long

'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

'//Combobox_Editeur
'//
i = 4 'première ligne
While Worksheets("Licences").Range("W" & i).Value <> ""
i = i + 1 'la cellule n'est pas vide on passe à la suivante
Wend
' On insert la saisie dans la première ligne vide
Worksheets("Licences").Range("W" & i + 0).Value = ComboBox_Editeur.Text
'//

'On teste la saisie de la nature de l operation
If (BTN_Cheque1.Value = False) And (BTN_Prelevement2.Value = False) And _
(BTN_Virement3.Value = False) And (BTN_Especes4.Value = False) Then
MsgBox "nature de l opération", vbExclamation, "Message Erreur"
Exit Sub
End If
etc

merci a toi
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
17 avril 2008 à 14:08
Peut importe l'ordre des procédures ou des fonctions dans le module, ça n'a aucune influence pour l'exécution du code. Seul dans les fonctions et procédures l'ordre est important.

Il faut faire ça :
Private Sub userform_activate() 'plein écran 
With Me 
.StartUpPosition = 3 
.Width = Application.Width 
.Height = Application.Height 
.Left = 0 
.Top = 0
.BTN_Cheque1.Value = False 
.BTN_Prelevement2.Value = False 
.BTN_Virement3.Value = False 
.BTN_Especes4.Value = False 
End With 
Module1.InitComboBox 
End Sub

et supprimer complètement Private Sub FRM_Formulaire_de_saisies_Activate() qui ne sert strictement à rien

Dans une fonction ou une procédure on place toujours les tests en début, avant d'exécuter le reste du code de la fonction ou de la procédure.
;o)

polux
0
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018
17 avril 2008 à 17:15
re,
j avais toujours le meme probleme, j ai donc supprimé les 1 , 2 , 3 et 4 des boutons et la ça fonctionne deja mieux.

tu me dis : Peut importe l'ordre des procédures ou des fonctions dans le module, ça n'a aucune influence pour l'exécution du code. Seul dans les fonctions et procédures l'ordre est important
mais la j ai mis les codes dans mon userform ...

j ai bien le msgbox pour me dire de remplir la nature de l operation, mais pour remplir la condition correspondante ( cheqque, prelevement, virement ou especes ) en fontion de la selection du bouton, je dois refaire la meme procedure pour obtenir cela ? et quand je valide mon formulaire tout les champs se vident bien sauf ceux de la frame et des textbox correspondant

merci
0
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018
17 avril 2008 à 17:31
j ai essaye de mettre InitnatureBTN a la fin du bouton valider suite au module 1 mais ce n est pas ça

For Each objControl In Controls 'FRM_Formulaire_de_saisies.Controls
If TypeOf objControl Is msforms.TextBox Then
objControl.Text = ""
End If
Next
Module1.InitComboBox
Module2.InitnatureBTN

End Sub
Merci
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
17 avril 2008 à 17:36
As-tu fait une procédure InitnatureBTN dans le module2 ?
0
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018
17 avril 2008 à 18:15
non

Option Explicit

Public nature As Integer

Public Sub natureBTN()

With FRM_Formulaire_de_saisies ' gris = &H80000011& blanc = &H80000005&
Select Case nature

etc
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
17 avril 2008 à 18:21
Je n'arrive plus à suivre là ... envoie moi ton fichier, ça sera mieux
0
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018
17 avril 2008 à 18:25
lien ou mail ?
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
17 avril 2008 à 18:33
comme tu le sens :o)
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
17 avril 2008 à 19:08
je viens te t'envoyer le fichier par mail

;o)

polux
0