Visualisation interactive SGBD
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*
Bonjour le forum,
J'essaie d'avancer mais je coince :
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 SubBonjour le forum,
Personne n'a une idée?
@+
Bonjour,
comme ce sujet est déjà en cours sur au moins un autre forum, on ne va pas répondre ici !
Bonjour le forum,
Bon j'essaie de faire autrement mais ça rame un peu
Déjà la macro insere une feuille Vi qui va permettre de filtrer à l'aide de Autofilter et la listbox2 renverra les valeurs filtrées de la colonne A.
Voici le code lors du clique dans la checkbox3 :
Private Sub Checkbox3_Click()
Dim Plage As Range
Set Fs = Sheets("Fichier_source") 'définit l'onglet Fs
Set Vi = Sheets("Visualisation interactive") 'définit l'onglet Vi
Set Plage = Vi.Range("A2:A" & Vi.Range("A" & Rows.Count).End(xlUp).Row).SpecialCells(xlCellTypeVisible)
If CheckBox3.Value = False Then
With Vi
.Range("A1:K1").AutoFilter
.Range("$A$1:$K$300").AutoFilter Field:=5, Criteria1:="A étalonner"
End With
End If
If CheckBox3.Value = True Then
With Vi
.Range("A1:K1").AutoFilter
.Range("$A$1:$K$300").AutoFilter Field:=5
End With
End If
Me.ListBox2.Clear
For Each C In Plage
If C.Value <> "" Then Me.ListBox2.AddItem C.Value
Next C
End Sub2 choses bizarres :
1°. il faut cliquer plusieurs fois dans la checkbox pour que cela fonctionne
2°. checkbox = true et checkbox = false sont inversés !!!