Bonjour à tous,
Sur un onglet de mon formulaire :
J’ai un contrôle liste déroulante qui me permet de sélectionné une personne (Nom). Lorsque une personne est sélectionnée un bouton (Niveau) permet de lancé mon code VBA. Celui-ci va récupérer la valeur du nom et lancé la requete SQL qui va afficher les niveau, le matériels, le fabricants dans un contrôle type liste.
Liste351 est une liste qui affiche Niveau, Api(materiel), Fabricant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 Dim SQL15 As String Dim lngrecherchenomnivo As Long Dim lngniv As String strrecherchenomnivo As String lngnombreligne As Long Intligne As Integer '' SELECTION PAR NOM Private Sub Commande317_Click() '' Vérifie que l'on a cliqué sur un NOM pour éviter le NULL If Not IsNumeric(Me!SelectNomnivo) Then Exit Sub '' Affecte la valeur IDemp à la variable lngrecherchenm strrecherchenomnivo = SelectNomnivo.Column(IndiceColonne + 1) SQL15 = "SELECT(SELECT IDniv FROM TBLnivmaitrise N WHERE N.IDniv=A.IDniv), (SELECT Api FROM TBLapi Z WHERE Z.IDapi=A.IDapi), (SELECT(select Fabricant from TBLfabricantapi WHERE CodeFabricant=Z.CodeFabricant) FROM TBLapi Z WHERE Z.IDapi=A.IDapi) FROM TBLcompetence AS A WHERE A.IDemp=(SELECT IDemp FROM TBLemploye WHERE Nom='" & strrecherchenomnivo & "');" '' Affecte la chaîne SQL à la liste recherche nom Liste351.RowSource = SQL15 '' Déverrouille la liste des Api Liste351.Enabled = True '' Donne le focus la liste des Api Liste351.SetFocus Intligne = Liste351.ListCount For lngnombreligne = 0 To Intligne Step 1 lngniveau = Me!Liste351.Column(IndiceColonne + 0, lngnombreligne ) opgChoix.Value = (lngniveau) opgChoix.Value = (lngniveau) Print Intligne Print lngnombreligne Next End Sub
Intligne est calculer par : Intligne = Liste351.ListCount
lngnombreligne va permettre d’incrémenter la ligne de sélection sur le tableau
lngniveau est la valeur présente dans le tableau colonne 0, ligneX
opgChoix et opgChoix2 sont des contrôles type Option de groupe (5 option = Débutant, Moyen, Maitrise, Expert) qui sont des niveau
Donc le problème se situe sur opgChoix2 dans la boucle FOR :
1) Pour l'instant dans je lance mon code, le nombre de ligne afficher sur mon tableau est calculer par Intligne et sert de fin à ma boucle.
2) lngniveau va récupérer la valeur de la colonne 0, ligne 0 (Valeur = 1, 4, 5, 6, 7) et un groupe d'option (opgChoix) récupère la valeur de lngniveau (pour coché la case désiré)
Mon souhait serait que ma boucle vérifie sur le tableau toutes les lignes de la colonne 0 et que le résultat (lngniveau) soit renvoyé sur des contrôles type option de groupe (opgChoix, opgChoix2, opgChoixX)
Donc pour la valeur de la colonne 0 ligne 0 (lngniveau)
EX : Valeur = 1
Va activé la case Débutant de mon groupe d’option (opgChoix.Value = 1 )
Mais opgChoix2 devrait prendre la valeur Colonne 0, ligne 1
EX : Valeur =4
Mais va activé la case débutant alors que sa devrait être la case Moyen
Merci, bonne journée a tous.
Partager