Bonjour le forum,
J'ai réalisé un userform 6, dans mon fichier, j'ai commencé à coder mais je ne sais pas comment les checkbox et les listbox vont rentrer en relation.
Le but de l'userform est de mettre dans la listbox 2 l'ensemble des références des détecteurs de la base de données (feuil2) correspondant aux critères sélectionnés (checkbox1 à 5 et listbox 1).
En espérant avoir été assez clair.
PS : micro 5 PID = ref SK*
microclip XT = ref KA*
Exemple de code que j'ai commencé mais qui ne fonctionne pas totalement
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 Private Sub Checkbox3_Click() Dim NL As Integer 'déclare la variable NL (Nombre de lignes) Dim NC As Byte 'déclare la variable NC (Nombre de Colonnes) Dim i As Integer 'déclare la variable I (Incrément de ligne) Me.ListBox2.ColumnCount = 2 'définit le nombre de colonnes de la listbox Me.ListBox2.ColumnWidths = ";0pt" 'masque la seconde colonne de la listbox Set A = Sheets("Applications") 'définit l'onglet A Set Fs = Sheets("Fichier_source") 'définit l'onglet Fs Fs.Unprotect "QSETVX" 'déprotège l'onglet Fs TC = Fs.Range("A1").CurrentRegion 'définit le tableau de cellules TC NL = UBound(TC, 1) 'définit le nombre de lignes NL du tableau de cellules TC NC = UBound(TC, 2) 'définit le nombre de colonnes NC du tableau de cellules TC For i = 2 To NL 'boucle sur toutes les ligne de TC (en partant de la seconde) 'condition : si la valeur ligne I colonne 10 (=>colonne J) de tc est égale à "En Stock", If CheckBox3 = True And TC(i, 5) = "A étalonner" Then With Me.ListBox2 'prend en compte la listbox .AddItem 'ajoute un élément .Column(0, .ListCount - 1) = TC(i, 1) 'récupere la référence dans la colonne 0 .Column(1, .ListCount - 1) = i 'récupère le numéro de ligne dans la colonne 1 (masquée) End With 'fin de la prose en compte de la listbox '*************************************************************************************************************************************** 'ICI JE SOUHAITERAI RETIRER UNIQUEMENT LES VALEURS CONCERNEES ET NON TOUT LES ITEMS DE LA LISTBOX '*************************************************************************************************************************************** ElseIf CheckBox3 = False And TC(i, 5) = "A étalonner" Then With Me.ListBox2 'prend en compte la listbox .Items.Remove 'supprime un élément .Column(0, .ListCount - 1) = TC(i, 1) 'récupere la référence dans la colonne 0 .Column(1, .ListCount - 1) = i 'récupère le numéro de ligne dans la colonne 1 (masquée) End With 'fin de la prose en compte de la listbox End If 'fin de la condition Next i 'prochaine ligne de la boucle End Sub
Partager