knakes | Normalement c'est ok :
Voilà le code peu digeste ...
Code :
- Me.Classe.Clear
- For i = 1 To Len(Range("B" & Marque.ListIndex + 1).End(xlToRight).Address(Marque.ListIndex + 1, , xlR1C1))
- If IsNumeric(Right(Range("B" & Marque.ListIndex + 1).End(xlToRight).Address(Marque.ListIndex + 1, , xlR1C1), i)) And Not IsNumeric(Right(Range("B" & Marque.ListIndex + 1).End(xlToRight).Address(Marque.ListIndex + 1, , xlR1C1), i + 1)) Then LastCol = Right(Range("B" & Marque.ListIndex + 1).End(xlToRight).Address(Marque.ListIndex + 1, , xlR1C1), i)
- Next i
- For j = 2 To LastCol
- Me.Classe.AddItem Cells(Marque.ListIndex + 1, j).Value
- Next j
|
En plus clair ... Code :
- Me.Classe.Clear
- Dim adDerCol As String
- '
- ' on récupère l'adresse de la dernière cellule utilisée sous la forme RxCy
- '
- adDerCol = Range("B" & Marque.ListIndex + 1).End(xlToRight).Address(Marque.ListIndex + 1, , xlR1C1)
- For i = 1 To Len(Range("B" & Marque.ListIndex + 1).End(xlToRight).Address(Marque.ListIndex + 1, , xlR1C1)) ' On récupère la taille de l'adresse pour faire une boucle qui va nous permettre de savoir le numéro de la dernière colonne (x ou xx ou encore xxx ...)
- If IsNumeric(Right(Range("B" & Marque.ListIndex + 1).End(xlToRight).Address(Marque.ListIndex + 1, , xlR1C1), i)) And Not IsNumeric(Right(Range("B" & Marque.ListIndex + 1).End(xlToRight).Address(Marque.ListIndex + 1, , xlR1C1), i + 1)) Then LastCol = Right(Range("B" & Marque.ListIndex + 1).End(xlToRight).Address(Marque.ListIndex + 1, , xlR1C1), i)
- Next i
- For j = 2 To LastCol 'Donc, jusqu'à la dernière colonne, on prend les valeurs des cellules ...
- Me.Classe.AddItem Cells(Marque.ListIndex + 1, j).Value
- Next j
|
Il y a juste un bug : s'il n y a qu'une colonne de remplie pour la Combobox, il y a une barre de défilement qui apparaît. Cela ne gène en rien l'éxécution du programme.
---
Lol ça m'a donné du fils a retordre tout de même ...
Edit : C'est pas plus digeste le premier que le second ... mais bon je peux expliquer si besoin est. Message édité par knakes le 15-03-2005 à 22:51:07
|