Explication ligne de code Lastlig
Bonjour à toutes et à tous,
J'ai à nouveau un problème. En effet je ne comprend pas une ligne de code.
Je m'explique: Je fais un filtre à l'aide de combobox, j'alimente mes combobox avec le code suivant :
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 34
| Private Sub UserForm_Initialize() 'Récupération des données sur la BDD et tri dans l'ordre alphabetique
Dim LastLig As Long
Dim j As Long
Dim i As Byte
Dim n As Long
Dim ColCrit
ColCrit = Array(4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21, 22, 23) ' n° de colonnes choisies pour le filtrage
With Sheets("bras")
.AutoFilterMode = False
LastLig = .Cells(.Rows.Count, 4).End(xlUp).Row
For i = 1 To UBound(ColCrit)
For j = 4 To LastLig
Me.Controls("ComboBox" & i).Value = .Cells(j, ColCrit(i)).Value
If Me.Controls("ComboBox" & i).ListIndex = -1 Then Me.Controls("ComboBox" & i).AddItem .Cells(j, ColCrit(i)).Value
Me.Controls("ComboBox" & i).ListIndex = -1
Next j
'fonction pour tri dans l'ordre alphabetique
With Me.Controls("ComboBox" & i)
For x = 0 To .ListCount - 1
For y = 0 To .ListCount - 1
If .List(x) < .List(y) Then
strTemp = .List(x)
.List(x) = .List(y)
.List(y) = strTemp
End If
Next y
Next x
End With
Next i
End With
End Sub |
Mais le problème, c'est la ligne ou je décris LastLig
Code:
LastLig = .Cells(.Rows.Count, 4).End(xlUp).Row
Elle ne prend en compte que la colonne 4, mais j'aimerais qu'elle prend en compte la dernière ligne de toutes les colonnes.
Donc si je me suis bien comprendre, enfin j'espère, il faut en fait que quand j'ajoute des données à la suite dans les colonnes (sans cellules vides), la combobox soit alimenté correctement.
Je remercie par avance à celui ou celle qui m'indiquera la marche à suivre.
Pour finir, j'aimerais souligner la gentillesse, la rapidité et la patience de chaque membre qui m'ont aidé à me perfectionner.
Je sais que je le dis souvent, mais je tiens encore à le dire à toute la communauté:
MERCI