Menu déroulant

Résolu
avyrex1926 Messages postés 360 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 3 janvier 2012 - 29 août 2007 à 02:04
avyrex1926 Messages postés 360 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 3 janvier 2012 - 29 août 2007 à 11:53
njour à tous,

Je voudrais dans mon menu déroulant que les données qui apparaissent partent du plus bas au plus haut dans la colone.

Ex: Dans la colone B4 = xx1
dans B5 = xx2
dans B6 = xx3 etc.

Donc dans mon menu déroulant, il va apparaitre :
xx3
xx2
xx1.

Voici le script:
<hr size="2" width="100%" />Private Const LineStart As Long = 4

Private Sub UserForm_Initialize()

Dim i   As Long
    Dim DLV As Long: DLV = DeniereLigneVide
   
For i = LineStart To DLV
    If Cells(i - 1, 2) <> Cells(i, 2).Value Then ComboBox49.AddItem Cells(i, 2).Value
Next i
End Sub

Private Function DeniereLigneVide() As Long
    DeniereLigneVide = Range("B65536").End(xlUp).Row
End Function

<hr size="2" width="100%" />Comment faire svp?

Merci!

4 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
29 août 2007 à 02:11
salut Avyrex,

il te suffit pour cette opération de boucler (For ... To) de la dernière Ligne, à la première, avec le paramètre Step :

For i = DLV To LineStart Step -1
    If Cells(i - 1, 2) <> Cells(i, 2).Value Then ComboBox49.AddItem Cells(i, 2).Value
Next i

@++

<hr width="100%" size="2" />( Nouveau forum : Exclusivement Office & VBA/STRONG>
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
29 août 2007 à 02:26
C'est en manipulant qu'on apprend 

Pour info concernant le Step, tu n'es pas obligé de l'utiliser avec -1, mais d'autres valeurs (bon là, pour une cellule, c'est souvent +1 ou -1, mais dans d'autres cas..)

Autres Exemples :

For i = 0 To 10 Step 2
   'i prendra la valeur de 0, puis 2, puis 4 etc..
Next i

For i = 0 To 10 Step 0.1
   'i prendra la valeur de 0.1, puis 0.2, puis 0.3 etc..
Next i

For i = 100 To 1 Step -10
   'i prendra la valeur de 100, puis 90, puis 80 etc..
Next i

@++

<hr width="100%" size="2" />( Nouveau forum : Exclusivement Office & VBA/STRONG>
3
avyrex1926 Messages postés 360 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 3 janvier 2012 3
29 août 2007 à 02:19
Merci beaucoup.

C'était trop simple pour moi il faut croire.

Merci encore!
0
avyrex1926 Messages postés 360 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 3 janvier 2012 3
29 août 2007 à 11:53
okkkkkkk,

là je comprend.

Je ne comprenais pas comme ça! super merci
0
Rejoignez-nous