OVH Cloud OVH Cloud

changer odre des elements dans une listbox

8 réponses
Avatar
Emcy
Bonjours,

j'ai un tableau avec n elemnt dans l'ordre

Dans ma Userform, j'ai une listbox + un bouton Monter + un bouton Descendre

Au chargement de mon userfrom, je remplis ma ListBox avec mon tableau. (en
vba) comme ceci :
Me.ListBox1.List = MonTableau

comment faire, pour que lorsque que je selectionne un element dans ma
listbox et qu'ensuite j'appuye sur le bouton Monter ou sur le bouton
descendre, mon element monte ou descend dans l'affichage de ma listbox (en
vba) ?

8 réponses

Avatar
Jacques93
Bonjour Emcy,

Peut être :

' Monter
Private Sub CommandButton1_Click()
If Me.ListBox1.ListIndex > 0 Then
MoveItem Me.ListBox1.ListIndex - 1
End If
End Sub

'Descendre
Private Sub CommandButton2_Click()
If Me.ListBox1.ListIndex < Me.ListBox1.ListCount - 1 Then
MoveItem Me.ListBox1.ListIndex + 1
End If
End Sub

Private Sub MoveItem(NewIndex As Integer)
Dim s As String

s = Me.ListBox1.List(Me.ListBox1.ListIndex)
Me.ListBox1.RemoveItem Me.ListBox1.ListIndex
Me.ListBox1.AddItem s, NewIndex
Me.ListBox1.ListIndex = NewIndex
End Sub

Bonjours,

j'ai un tableau avec n elemnt dans l'ordre

Dans ma Userform, j'ai une listbox + un bouton Monter + un bouton Descendre

Au chargement de mon userfrom, je remplis ma ListBox avec mon tableau. (en
vba) comme ceci :
Me.ListBox1.List = MonTableau

comment faire, pour que lorsque que je selectionne un element dans ma
listbox et qu'ensuite j'appuye sur le bouton Monter ou sur le bouton
descendre, mon element monte ou descend dans l'affichage de ma listbox (en
vba) ?





--
Cordialement,

Jacques.

Avatar
Emcy
de quelle reponse parles tu ? je n'arrive pas à utiliser ton liens

"JLuc" a écrit dans le message de news:

Emcy avait soumis l'idée :
Bonjours,

j'ai un tableau avec n elemnt dans l'ordre

Dans ma Userform, j'ai une listbox + un bouton Monter + un bouton
Descendre

Au chargement de mon userfrom, je remplis ma ListBox avec mon tableau.
(en vba) comme ceci :
Me.ListBox1.List = MonTableau

comment faire, pour que lorsque que je selectionne un element dans ma
listbox et qu'ensuite j'appuye sur le bouton Monter ou sur le bouton
descendre, mon element monte ou descend dans l'affichage de ma listbox
(en vba) ?


La reponse que je t'ai faite dans ton fil
<OmpfU2M$ ne te convenais pas ?
JLuc





Avatar
Emcy
merci, ça marche

"Jacques93" a écrit dans le message de news:
%23$RzDQv$
Bonjour Emcy,

Peut être :

' Monter
Private Sub CommandButton1_Click()
If Me.ListBox1.ListIndex > 0 Then
MoveItem Me.ListBox1.ListIndex - 1
End If
End Sub

'Descendre
Private Sub CommandButton2_Click()
If Me.ListBox1.ListIndex < Me.ListBox1.ListCount - 1 Then
MoveItem Me.ListBox1.ListIndex + 1
End If
End Sub

Private Sub MoveItem(NewIndex As Integer)
Dim s As String

s = Me.ListBox1.List(Me.ListBox1.ListIndex)
Me.ListBox1.RemoveItem Me.ListBox1.ListIndex
Me.ListBox1.AddItem s, NewIndex
Me.ListBox1.ListIndex = NewIndex
End Sub

Bonjours,

j'ai un tableau avec n elemnt dans l'ordre

Dans ma Userform, j'ai une listbox + un bouton Monter + un bouton
Descendre

Au chargement de mon userfrom, je remplis ma ListBox avec mon tableau.
(en vba) comme ceci :
Me.ListBox1.List = MonTableau

comment faire, pour que lorsque que je selectionne un element dans ma
listbox et qu'ensuite j'appuye sur le bouton Monter ou sur le bouton
descendre, mon element monte ou descend dans l'affichage de ma listbox
(en vba) ?





--
Cordialement,

Jacques.



Avatar
JLuc
Emcy avait soumis l'idée :
Bonjours,

j'ai un tableau avec n elemnt dans l'ordre

Dans ma Userform, j'ai une listbox + un bouton Monter + un bouton Descendre

Au chargement de mon userfrom, je remplis ma ListBox avec mon tableau. (en
vba) comme ceci :
Me.ListBox1.List = MonTableau

comment faire, pour que lorsque que je selectionne un element dans ma
listbox et qu'ensuite j'appuye sur le bouton Monter ou sur le bouton
descendre, mon element monte ou descend dans l'affichage de ma listbox (en
vba) ?


La reponse que je t'ai faite dans ton fil
<OmpfU2M$ ne te convenais pas ?
JLuc

Avatar
JLuc
Ton message "gerer un listbox" du 9/12/2005 15:29:23

Emcy avait soumis l'idée :
de quelle reponse parles tu ? je n'arrive pas à utiliser ton liens

"JLuc" a écrit dans le message de news:

Emcy avait soumis l'idée :
Bonjours,

j'ai un tableau avec n elemnt dans l'ordre

Dans ma Userform, j'ai une listbox + un bouton Monter + un bouton
Descendre

Au chargement de mon userfrom, je remplis ma ListBox avec mon tableau. (en
vba) comme ceci :
Me.ListBox1.List = MonTableau

comment faire, pour que lorsque que je selectionne un element dans ma
listbox et qu'ensuite j'appuye sur le bouton Monter ou sur le bouton
descendre, mon element monte ou descend dans l'affichage de ma listbox (en
vba) ?


La reponse que je t'ai faite dans ton fil
<OmpfU2M$ ne te convenais pas ?
JLuc







Avatar
Emcy
c'est toi Pounet95 ?
il n'y a pas de reponse dans ce poste, non ? il était juste dis qu'il y
avait du travail à faire...

"JLuc" a écrit dans le message de news:

Ton message "gerer un listbox" du 9/12/2005 15:29:23

Emcy avait soumis l'idée :
de quelle reponse parles tu ? je n'arrive pas à utiliser ton liens

"JLuc" a écrit dans le message de news:

Emcy avait soumis l'idée :
Bonjours,

j'ai un tableau avec n elemnt dans l'ordre

Dans ma Userform, j'ai une listbox + un bouton Monter + un bouton
Descendre

Au chargement de mon userfrom, je remplis ma ListBox avec mon tableau.
(en vba) comme ceci :
Me.ListBox1.List = MonTableau

comment faire, pour que lorsque que je selectionne un element dans ma
listbox et qu'ensuite j'appuye sur le bouton Monter ou sur le bouton
descendre, mon element monte ou descend dans l'affichage de ma listbox
(en vba) ?


La reponse que je t'ai faite dans ton fil
<OmpfU2M$ ne te convenais pas ?
JLuc











Avatar
JLuc
Emcy avait soumis l'idée :
c'est toi Pounet95 ?
Non, moi c'est JLuc


il n'y a pas de reponse dans ce poste, non ? il était juste dis qu'il y avait
du travail à faire...
Pounet95 t'avais repondu, tu lui a repondu pour lui explique comment tu

remplissait la listbox.
Attends, je te recolle le tout :

Emcy avait soumis l'idée :

"Tout dépend de la façon dont est créée la liste." => ma liste est créer en
vba et est rempli par un tableau

je l'a remplie comme ceci :
Me.ListBox1.List = MonTableau
Alors inverse l'element de ton tableau avec une variable temporaire et

recharge ta listbox en concervant le numero d'index pour repointer sur
l'element :

x = Listbox1.listindex
temp = MonTableau(x)
MonTableau(x) = MonTableau(x-1) 'Montee
MonTableau(x-1) = temp
Me.ListBox1.List = MonTableau
Me.ListBox1.Listindex = x-1
...



Avatar
Emcy
c'est bizarre, lorsque je lis le post depuis mon PC, je n'ai pas le dernier
message....
ta solution est pas mal non plus.
merci


"JLuc" a écrit dans le message de news:

Emcy avait soumis l'idée :
c'est toi Pounet95 ?
Non, moi c'est JLuc


il n'y a pas de reponse dans ce poste, non ? il était juste dis qu'il y
avait du travail à faire...
Pounet95 t'avais repondu, tu lui a repondu pour lui explique comment tu

remplissait la listbox.
Attends, je te recolle le tout :

Emcy avait soumis l'idée :

"Tout dépend de la façon dont est créée la liste." => ma liste est créer
en vba et est rempli par un tableau

je l'a remplie comme ceci :
Me.ListBox1.List = MonTableau
Alors inverse l'element de ton tableau avec une variable temporaire et

recharge ta listbox en concervant le numero d'index pour repointer sur
l'element :

x = Listbox1.listindex
temp = MonTableau(x)
MonTableau(x) = MonTableau(x-1) 'Montee
MonTableau(x-1) = temp
Me.ListBox1.List = MonTableau
Me.ListBox1.Listindex = x-1
...