Utilisation de And pour vérifier les textBox

Résolu/Fermé
alain.lanxade Messages postés 3 Date d'inscription mardi 28 septembre 2010 Statut Membre Dernière intervention 28 septembre 2010 - 28 sept. 2010 à 14:20
alain.lanxade Messages postés 3 Date d'inscription mardi 28 septembre 2010 Statut Membre Dernière intervention 28 septembre 2010 - 28 sept. 2010 à 14:41
Bonjour à Tous,

Config. : Windows XP, VBA - Excel 2005

J'ai crée un UserForm qui contient :
- Un TextBox1, Un TextBox11
- Un TextBox2, un TextBox12
- ......jusqu'à ......un ListBox 10, et un ListBox20
-Une ListBox1

Les TextBox 1,2,3,.....10, Représentent le nombre de personnes
Les TextBox 11,12,13,.....20 , leur qualification
Le TextBox 11 se situe à Côté du TextBox1, Le TextBox12 à côté du textBox2 ....Etc
TextBox2 se situe sous le TextBox1 , TextBox 12 sous TextBox11 .....Etc
La listBox1 contient une suite (pré remplie) des différentes qualifications (1ère ligne "NIV 1", 2ième ligne"Niv 2", 3ième ligne "NIV 3" ....Etc....

> Ce que je voulais faire :

Inscrire dans le textBox1, le nombre de personnes qualifiées , puis choisir en double cliquant dans la ListBox 1 (Par exemple sur NIV 3) la qualification désirée et l'inscrire dans le TextBox11( "NIV 3)"
Puis aprés avoir inscrit dans le TextBox 2 le nombre de personnes qualifiées , Double cliquer dans la ListBox1 le niveau désiré (Par exemple sur NIV 1) l'inscrire dans le TextBox12( "NIV 1)"

Pour cela j'ai crée un code:

Sub ListBox1_BdlClick(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1<>"" And TextBox11="" Then GoTo AA:
If TextBox1<>"" And TextBox12="" Then GoTo BB:
AA:
TextBox11 = ListBox1.List(ListBox1.ListIndex,0 :GoTo ZZ:
BB:
TextBox12= ListBox1.List(ListBox1.ListIndex,0 :GoTo ZZ:
Etc .....jusqu'à textbox10, textbox20

ZZ:
End Sub

Ce qui pour moi, vba devait fonctionner de la manière suivante :

L'opérateur inscrit le Nombre de personnes dans le TextBox1 :
Après le double clique de la listBox1:

Le Code vérifie que le TextBox1 est "Différent" (<>)de vide "Et" que le TextBox11(=)" est" Vide
Si TextBox1 Différent de Vide (Nombre de personnes inscrites) "et" que le TextBox11 est Vide, le code inscrit la Qualification dans le TextBox11

A cet instant, les TextBox1 et 11 Sont Différents de "Vide"

> Jusque là ça Marche !!

Puis l'opérateur inscrit le nombre de personnes dans le TextBox2 et re-double clique sur une ligne dans la ListBox1

Le code vérifie les TextBox 1 et 11 : Le TextBox1 est <> de vide , mais le TextBox11 n'est pas = à "Vide"

Il passe donc aux textBox2 et12 pour vérifier : Le textBox 2 est <> de vide, "ET" textBox 12 = Vide
Le code devrait donc inscrire la sélection dans le TextBox12 !!

Là ça ne marche pas , car la 2ième sélection de la listBox1 vient s'inscrire en TextBox11 ????

Où est-ce que je ne réfléchis plus comme VBA ??

Merci de votre Attention
A Bientôt

3 réponses

m@rina Messages postés 20947 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 28 septembre 2024 11 329
28 sept. 2010 à 14:26
Bonjour,

Je ne comprends pas bien :

Plutôt que ta série de Textbox11 à n, pourquoi ne pas mettre une série de listes déroulantes ?

m@rina
0
alain.lanxade Messages postés 3 Date d'inscription mardi 28 septembre 2010 Statut Membre Dernière intervention 28 septembre 2010
28 sept. 2010 à 14:31
Bonjour m@rina,
Merci de la réponse, je n'y avais pas pensé
Il faut me pardonner je suis un vieux Monsieur qui débute dans VBA
A bientôt
0
alain.lanxade Messages postés 3 Date d'inscription mardi 28 septembre 2010 Statut Membre Dernière intervention 28 septembre 2010
28 sept. 2010 à 14:41
m@rina ,

Après un essai provisoire, cela fonctionne parfaitement !

Merci
A bientôt
0