Conditionner la saisie d'un champ dans un formulaire sous Excel [Résolu]

- 26 déc. 2012 à 15:02 - Dernière réponse :
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 28 déc. 2012 à 18:22
Bonjour à tous,

Je dois modifier un formulaire (développé en VBA sous Excel 2002) afin de simplifier la saisie utilisateur. Je souhaite pouvoir conditionner la saisie d'un champ (champ2) du formulaire en fonction de la valeur d'un autre champ (champ1), défini par liste déroulante. Si la valeur du champ1 est égale à la valeur1, alors la saisie est possible dans le champ2, sinon l'utilisateur ne peut pas saisir ce champ2 (il devient non séléctionnable par clic ou par tabulation) en devenant grisé. J'espère que c'est assez clair.
Merci d'avance pour vos réponses

nicolas
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
- 26 déc. 2012 à 16:33
3
Merci
Quand tu insères du code dans le forum utilise les balises de code VB (troisième icône à partir de droite), comme je viens de faire.

C'est ça que tu veux faire?
Private Sub TextBox1_Change()
If TextBox1.Text = ComboBox1.Value Then
   TextBox2.Enabled = True 'Débloque le champ2
Else
   TextBox2.Enabled = False 'Bloque le champ2
End If
End Sub

Private Sub TextBox2_Change()
If TextBox2.Text = ComboBox2.Value Then
   TextBox3.Enabled = True 'Débloque le champ3
Else
   TextBox3.Enabled = False 'Bloque le champ3
End If
End Sub

Private Sub UserForm_Initialize()
'Au démarrage:
TextBox2.Enabled = False 'Bloque le champ2
TextBox3.Enabled = False 'Bloque le champ3
End Sub



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique

Merci Utilisateur anonyme 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 26 déc. 2012 à 17:49
3
Merci
Bonjour,
Il y a un abîme entre ton premier et ton dernier message !
Si l'on s'en tient à ton dernier :
Il te faut inhiber les trois textboxes au départ et ne libérer que celle quii correspond à un choix dans la combobox !
C'est donc dans l'évènement Click de la comùbo qu'il te faut écrire ton code de blocage ou de libération de tes textboxes, en fonction du choix fait dan,s la combo

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.

Merci ucfoutu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de ucfoutu
- 26 déc. 2012 à 15:52
0
Merci
Bonjour,
J'espère que c'est assez clair.

Oui tout à fait, et il est où le code que tu as commencé?
A quel niveau ça bloque?

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
0
Merci
Salut acive,

Je débute en VBA. Les valeurs de la liste déroulante sont codées en dur "saisie1" et "saisie2". Mais je ne suis pas encore bien familiarisé avec la syntaxe.

Le code débute comme ceci :
If Userform1.ComboBox1.Value = "saisie1" Then

Après, je bloque, il faudrait définir que les TextBox2 et TextBox3 ne puissent pas être saisissables.

merci
Commenter la réponse de nicoco91
- 26 déc. 2012 à 16:16
0
Merci
Re:
Qu'appelles-tu un champ? un champ de formulaire? une cellule? un textbox?


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
0
Merci
Merci à toi j'arrive presque au résultat souhaité avec le code suivant:

Private Sub TextBox1_Change()

If ComboBox1.Text = "BLABLABLA" Then
TextBox1.Enabled = False
Else
TextBox1.Enabled = True
End If
        
End Sub


Par contre, il est possible de saisir 1 caractère dans le Textbox1 avant qu'il ne se bloque en grisé. L'idéal serait que l'utilisateur ne puisse pas se positionner dans le Textbox1 quand la valeur "BLABLABLA" est contenue dans le Combobox1.
Commenter la réponse de nicoco91
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 26 déc. 2012 à 17:55
0
Merci
J'espère que ta question n'était pas tout simplement : "comment savoir sur quel index d'une combobox j'ai cliqué ?", hein ...


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
0
Merci
merci ucfoutu,

je fais quelques essais et revient vers toi et acive.

la question initiale est bien d’empêcher la saisie d'une Textbox dans un formulaire si la valeur contenue dans une ComboBox est égale à "BLABLABLA". Le but étant d'éviter de saisir des infos qui ne serviront pas.
Commenter la réponse de nicoco91
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 26 déc. 2012 à 22:11
0
Merci
On ne t'entend plus ...
Mais on entend mon petit doigt. Et sais-tu ce qu'il me dit ? ===>>
"si j'ai bien deviné, nicoco91 n'a besoin que d'une seule textbox et pas de trois"
Il se trompe rarement, tu sais, mon petit doigt. Et s'il a raison, c'est plus un problème de réflexion que de développement.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
0
Merci
Bonsoir,

Après quelques essais, j'ai réussi à obtenir le résultat souhaité. Merci à tous les 2 pour vos explications
Le VBA commence à être plus clair.
A une prochaine sur le forum
Commenter la réponse de nicoco91
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 28 déc. 2012 à 18:22
0
Merci
Bien.
Attarde-toi cependant à ,mon message du mercredi 26 décembre 2012 à 22:11:07
Une seule textbox devrait faire l'affaire, puisqu'il ne s'agit que de faciliter une saisie. Il suffit alors d'affecter à telle ou telle autre variable (ou telle ou telle autre cellule, selon le cas) la saisie de cette textbox en fonction de l'index sélectionné de la combobox !


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.