Verrouiller un Bouton en fonction du contenu des TextBox [Résolu]

Signaler
Messages postés
184
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
1 septembre 2010
-
Messages postés
184
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
1 septembre 2010
-
Bonjour,

j'aimerais verrouillé un bouton si toutes les textbox du formulaire ne sont pas rempli. J'ai le code suivant mais il ne fonctionne pas.

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Dim ctl1 As Control
Dim vide As Integer, rempli As Integer

vide = 0
rempli = 0

For Each ctl1 In Me.Controls
    If TypeName(ctl1) = "TextBox" Then
        If ctl1.Value = "" Then
            vide = vide + 1
            Else
            rempli = rempli + 1
        End If
    End If
Next ctl1

If (vide <> 0) Then
    Btn1.Enabled = False
    Else
    Btn1.Enabled = True
End If
End Sub


Visiblement, il ne passe jamais par 'vide = vide + 1'.
Il ne doit pas reconnaître le "".

Quelqu'un a une idée?

Merci
:)

12 réponses

Messages postés
114
Date d'inscription
lundi 6 septembre 2004
Statut
Membre
Dernière intervention
20 mars 2008

oui ça change tout.
Quand on dit VBA c'est Visual Basic Appliqué : appliqué à un programme comme exel, word, access... et donc limité par ce que peut faire le prog.
VB c'est un prog pour faire des prog donc non limité (ou si peu).
Ne confondez plus les deux et ce sera plus facile pour les réponses.
Ce que je t'ai envoyé fonctionne pour un proget en VB. Les conditions sous access 2000 connait pas. Apparement il veut une activation donc essai qqch comme :

apres le
For Each ctl1 In Me.Controls
met
ctl1.activate ou ctl1.setfocus

a+ et bonne chance.
Cliff le bouffeur :-p
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 111 internautes nous ont dit merci ce mois-ci

Messages postés
114
Date d'inscription
lundi 6 septembre 2004
Statut
Membre
Dernière intervention
20 mars 2008

salut,
essai avec null CAD if ctll.value=null then
...
Cliff le bouffeur :-p
Messages postés
184
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
1 septembre 2010
1
Merci ;)

mais j'ai déjà essayé avec Null, vbNull, vbNullString et vbNullChar et ca ne fonctionne pas.

Je ne sais pas quoi faire!
Messages postés
211
Date d'inscription
lundi 31 mars 2003
Statut
Membre
Dernière intervention
11 juin 2007

et avec empty ??? ça donne quoi ?

si tu fais un msgbox ctll.value, il affiche quoi ?

Guich
Messages postés
114
Date d'inscription
lundi 6 septembre 2004
Statut
Membre
Dernière intervention
20 mars 2008

déja ton rempli ne sert à rien : tu peux donc essayer en plus simple :
For Each ctl1 In Me.ControlsIf TypeName(ctl1) "TextBox" and ctl1.Value "" or null Then vide = vide+1
Next ctl1

Cliff le bouffeur :-p
Messages postés
1858
Date d'inscription
samedi 29 juin 2002
Statut
Membre
Dernière intervention
17 octobre 2013
10
Bonjour
Sauf erreur, une TextBox ne possède pas de propriété Value.
Essaie
If ctl1.Text = "" Then
Messages postés
328
Date d'inscription
mercredi 26 novembre 2003
Statut
Membre
Dernière intervention
24 novembre 2005

On peur pas faire
for each textbox ...
Messages postés
184
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
1 septembre 2010
1
>>bouf

J'ai essayé, ça ne fonctionne pas

>>rene38
un textbox a une propriété Value et avec la propriété Text ça ne marche pas non plus
Messages postés
114
Date d'inscription
lundi 6 septembre 2004
Statut
Membre
Dernière intervention
20 mars 2008

re,
voila j'ai essayé et ça marche :
Dim ctl1 As Control
Dim vide, rempli As Integer
vide = 0
rempli = 0

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
For Each ctl1 In Me.Controls
If TypeName(ctl1) = "TextBox" Then
If ctl1.Text = "" Then
vide = vide + 1
Else
rempli = rempli + 1
End If
End If
Next ctl1If vide 0 Then Command1.Visible True Else Command1.Visible = False
end sub

Cliff le bouffeur :-p
Messages postés
1858
Date d'inscription
samedi 29 juin 2002
Statut
Membre
Dernière intervention
17 octobre 2013
10
Il fallait préciser que c'est du VBA !
Value ou Text : les 2 marchent MAIS avec :
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Messages postés
184
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
1 septembre 2010
1
j'ai testé le code et j'obtiens un message d'erreur:

Impossible de faire référence à une propriété ou de la définir pour un contrôle si ce dernier n'est pas activé.


J'ai oublié de préciser que j'étais sous Access 200.
Je sais pas si ca change qqch.
Messages postés
184
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
1 septembre 2010
1
Ca fonctionne mais c'est pas très esthéthique, ca tourne en boucle et ca scintille !

Mais c'est pas grave, je vais chercher autre chose

Merci
:approve)