J'ai réalisé un premier formulaire qui identifie les risques professionnels de chaque activités de mon entreprise.
Mon dernier objectif est d'affecter à chaque salarié une fiche d'exposition individuelle, compilant les risques rencontrés pour toutes les activités qu'ils effectuent:
Ma Listbox 2 s'emplit enfin des noms de secteurs d'activités, modifiable via mes ToggleButtons.
Je souhaite afficher les risques professionnels de chacune de ces activités dans ma ListBox1 (sans doublons).
Je dispose d'une formule fonctionnelle dans un autre USF qui, à partir de la sélection d'une Combobox, alimente une listBox identique. (codes proposés par JacquesBoisgonthier et Ben_L).
Comment adapter ce code pour que de sélection d'un unique item de Combobox1, je puisse passer à chaque item d'une ListBox2?
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 Private Sub ComboBox1_Click() Dim F As Worksheet, bd As Variant, i As Integer, temp As Variant Me.TextBox1.Value = Me.ComboBox1.Text Me.ListBox1.Clear Set F = Sheets(Me.TextBox1.Text) bd = F.Range("F9:J" & F.[F65000].End(xlUp).Row).Value2 ' tableau bd(n,1) pour rapidité For i = LBound(bd) To UBound(bd) If bd(i, 1) <> "" Then Call AddArrayElm(temp, Array(bd(i, 1), bd(i, 3), bd(i, 4), bd(i, 5))) Next i Me.ListBox1.ColumnCount = 4 Me.ListBox1.List = Application.Transpose(temp) Private Sub AddArrayElm(Arr As Variant, Elm As Variant) Dim i As Long, nRow As Long, nCol As Long nCol = UBound(Elm) If Not IsArray(Arr) Then nRow = 0 ReDim Arr(nCol, nRow) Else nRow = UBound(Arr, 2) + 1 For i = 0 To nRow - 1 If Elm(0) = Arr(0, i) Then Exit Sub Next i ReDim Preserve Arr(nCol, nRow) End If For i = 0 To nCol Arr(i, nRow) = Elm(i) Next i End Sub
Partager