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
| Sub Init2()
Dim Tableau() As Variant, Tablo() As Variant, plage As Range
Dim DerLig As Long, DerCol As Integer
Dim NoLig As Long, NoCol As Integer, j as integer, i as long
'On fixe le nombre de colonne à la dernière colonne de la plage
ComboBox1.ColumnCount = 4
ComboBox1.BoundColumn = 1 'on fixe la première colonne pour identifier les doublons
ReDim Tableau(50, 7)
For Each Cell In Worksheets("feuil1").Range("A2:A50,C2:C50,E2:E50,G2:G50")
'Lecture de chaque ligne afin de renseigner la liste sans doublon col. 1
If Cell.Column = 1 Then
Me.ComboBox1 = Cells(Cell.Row, 1)
'Remplissage exempt de doublon
If Me.ComboBox1.ListIndex = -1 Then
Me.ComboBox1.AddItem Cells(Cell.Row, 1)
'Si la cellule appartient à la colonne 1, si ce n'est pas un doublon...
'... on enregistre la ligne dans le tableau de la colonne 1 à 7
For j = 0 To 6
If j = 0 Or j = 2 Or j = 4 Or j = 6 Then
Tableau(NoLig, NoCol) = Cells(Cell.Row, j + 1)
NoCol = NoCol + 1
End If
Next
NoLig = NoLig + 1
NoCol = 0
End If
End If
Next
'On dimensionne le nombre de ligne au nbre de ligne sans doublon
ReDim Tablo(NoLig, 3)
For i = 0 To NoLig - 1
For j = 0 To 3
Tablo(i, j) = Tableau(i, j)
Next
Next
'On vide le combo
ComboBox1.Clear
'on le remplit avec le tableau
ComboBox1.List() = Tablo
'On n'a pas à masquer de colonne... donc...
ComboBox1.ColumnWidths = "100;60;60;60"
ComboBox1.ListIndex = -1
End Sub |
Partager