Insertion d'une ligne dans une listbox

Insertion d'une ligne dans une listbox - VB/VBA/VBS - Programmation

Marsh Posté le 16-03-2010 à 15:41:58    

Bonjour,
j'ai un problème. Je souhaiterais ajouter une ligne dans une listbox (déjà remplie). J'arrive à ajouter une ligne à la fin de la liste (position par défaut je présume) mais je voudrais l'insérer à une ligne donnée.
Je m'explique : ma listbox est formée de 4 colonnes correspondant aux coordonnées X,Y,Z et t (temps) de plusieurs points. J'ajoute alors une ligne en précisant ces 4 paramètres. Mais je n'arrive pas à la faire s'insérer où je veux : je veux qu'elle s'insère en fonction de la valeur de t.
Par exemple si mon nouveau point a t=38500 je voudrais qu'il s'insère à la ligne suivant t=38499 et précédent t=38505 (par exemple).
 
Pour l'instant j'ai écris ce qui suit mais je suis perdu, j'arrive pas à avancer :

Code :
  1. t = Val(Txtb_t.Text)
  2. Dim i, j As Integer
  3. j = Liste.Lstb_pts.ListCount
  4. For i = 1 To j
  5. ??????
  6. Liste.Lstb_pts.AddItem (Val(Txtb_x.Text))
  7. Liste.Lstb_pts.List(Liste.Lstb_pts.ListCount - 1, 1) = Val(Txtb_y.Text)
  8. Liste.Lstb_pts.List(Liste.Lstb_pts.ListCount - 1, 2) = Val(Txtb_z.Text)
  9. Liste.Lstb_pts.List(Liste.Lstb_pts.ListCount - 1, 3) = Val(Txtb_t.Text)
  10. Next


J'ai aussi essayer avec Do until mais j'arrive toujours pas.
Merci pour votre précieuse aide qui me permettra d'avancer !  

Reply

Marsh Posté le 16-03-2010 à 15:41:58   

Reply

Marsh Posté le 17-03-2010 à 15:46:16    

Bonjour
 
Déjà, VB ou VBA ?
 
Sinon un bon départ : tri à bulles


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 18-03-2010 à 09:24:07    

Bonjour dje69r, je suis en VBA. En fait la liste de points importée dans la listbox est déjà classée par t croissant. J'avais pensé parcourir la liste avec un while en disant tant que t à insérer > aux t de la liste on continue de parcourir la liste et dès que t à insérer devient < aux t de la liste ; on retient la position.
Mais j'arrive pas à traduire ceci en ligne de code, même si je pense que c'est pas trop compliqué.
Pour le point que j'insère, je donne ces valeurs par :
Txtb_x
Txtb_y
Txtb_z
Txtb_t
 
Ma listbox est Liste.Lstb_pts.
 
Merci d'avance si quelqu'un peut m'aider.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed