Menu déroulant [Résolu]

Signaler
Messages postés
360
Date d'inscription
dimanche 3 décembre 2006
Statut
Membre
Dernière intervention
3 janvier 2012
-
Messages postés
360
Date d'inscription
dimanche 3 décembre 2006
Statut
Membre
Dernière intervention
3 janvier 2012
-
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

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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>
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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>
Messages postés
360
Date d'inscription
dimanche 3 décembre 2006
Statut
Membre
Dernière intervention
3 janvier 2012
3
Merci beaucoup.

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

Merci encore!
Messages postés
360
Date d'inscription
dimanche 3 décembre 2006
Statut
Membre
Dernière intervention
3 janvier 2012
3
okkkkkkk,

là je comprend.

Je ne comprenais pas comme ça! super merci