1 pièce(s) jointe(s)
Visualisation interactive d'une base de données à l'aide d'un userform
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:
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 |