VBA rendre la saisie obligatoire ds TextBox

Résolu/Fermé
dado - Modifié par dado le 19/05/2010 à 23:02
 dado - 20 mai 2010 à 10:38
Bonjour,
Je suis bloqué dans la réalisation d'un formulaire en excel : j'aimerais rendre obligatoire le remplissage de champ (ensuite voir si le format (date, numérique... est respecté). Mais pour faire simple je mets une partie du code : uniquement l'obligatoire
Private Sub CommandButton1_Click()  
TextBox3.Text = TextBox1.Text & " " & TextBox2.Text  
End Sub  

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)  
If IsNull(TextBox1.Value) Or (TextBox1.Text = "") Then 
    MsgBox "Saisie obligatoire dans la textbox"  
    Cancel = True  
End If  
End Sub  

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)  
If IsNull(TextBox2.Value) Or (TextBox2.Text = "") Then  
    MsgBox "Saisie 2 obligatoire dans la textbox"  
    Cancel = True  
End Sub  

Pour le premier TextBox1_Exit ok tant qu'il est vide je ne peux concaténer les deux champs, par contre le deuxième il ne fonctionne pas la concaténation ce TextBox1 & rien
PQ mystère.... ou alors il faut s'y prendre autrement
Merci de vos réponses et aides



3 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
20 mai 2010 à 08:50
Bonjour,
Je viens d'essayer tes 3 codes. Cela fonctionne exactement comme tu le veux :
impossible de laisser TextBox1 & 2 vide.
Le problème peux venir du reste du code, ou alors je n'ai pas compris ce que tu voulais faire...
0
Merci de ta réponse
tu as surement rajouté le end if qui manquait ;-) mais malgré cela le premier ok mais si je le remplis il fait le test du deuxième textbox uniquement si le focus est dessus (sur le 2eme).... par contre si le focus reste sur le premier textbox => concaténation du 1er et de rien !
Là je bloque
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
20 mai 2010 à 09:59
Oui pour le End If, j'ai pensé à une simple erreur de copier/coller quand tu as placé ton code ici...
Par contre pour ton autre souci, je pense que tu te focalises trop sur ton souci car la réponse est sous tes yeux... Il suffit de placer le même code dans ton bouton que celui dans tes "TextBox_Exit" :
Private Sub CommandButton1_Click()
If IsNull(TextBox1.Value) Or (TextBox1.Text = "") Then
    MsgBox "Saisie obligatoire dans la textbox"
    Cancel = True
End If
If IsNull(TextBox2.Value) Or (TextBox2.Text = "") Then
    MsgBox "Saisie 2 obligatoire dans la textbox"
    Cancel = True
End If
TextBox3.Text = TextBox1.Text & " " & TextBox2.Text
End Sub

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsNull(TextBox1.Value) Or (TextBox1.Text = "") Then
    MsgBox "Saisie obligatoire dans la textbox"
    Cancel = True
End If
End Sub


Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsNull(TextBox2.Value) Or (TextBox2.Text = "") Then
    MsgBox "Saisie 2 obligatoire dans la textbox"
    Cancel = True
End If
End Sub

non?
0
Super Merci
J'ai rajouté ceci
If Cancel <> True Then
    TextBox3.Text = TextBox1.Text & " " & TextBox2.Text
End If

J'ai eu un cas qui est passé
Encore merci
0