XL 2010 Problème de Listindex dans ListBox

hatem1234

XLDnaute Junior
Bonjour à tous,

je vous joints un fichier que j'ai trouvé sur un autre forum et que j'ai un peu modifié

voici ce que je cherche à faire :

- afficher les données dans un listbox selon le critère suivant : la valeur de la colonne D = Demandeur11
- permettre la mise à jour ou la suppression des éléments

mon problème est que je ne peux trouver le listindex correspondant à l'élément sélectionné dans la listbox

c'est à dire lorsque je sélectionne un élément dans la listbox, c'est un autre élément qui s'affiche dans le userform

merci de me guider vers la solution

j'affiche des données temporaires dans la colonne L pour pouvoir afficher les données; vos suggestions sont les bienvenues pour modifier le code

Merci d'avance
 

Pièces jointes

  • tempo-listbox.xlsm
    30.4 KB · Affichages: 46

Dranreb

XLDnaute Barbatruc
Re : Problème de Listindex dans ListBox

Bonsoir.
Il n'y a pas 36 solutions. Si vous voulez pouvoir reprendre des infos de la feuille vous devez ranger dans une table globale le numéro de ligne dans la feuille pour chaque numéro de ligne dans la ListBox, et y reprendre ce numéro selon le ListIndex de la ListBox.
 

Dranreb

XLDnaute Barbatruc
Re : Problème de Listindex dans ListBox

En tête :
VB:
Private TLgn() As Long
Ensuite :
VB:
Private Sub Affiche_Donnees()
Dim Ligne As Long, Poste As Long
  ' Affichage de la liste
  With Me.lstDemandes
    .Clear
    For Ligne = 3 To WsBase.Range("A" & Rows.Count).End(xlUp).Row
      If WsBase.Range("D" & Ligne) = "Demandeur11" Then
      WsBase.Range("L" & Ligne) = WsBase.Range("A" & Ligne) & " / " & WsBase.Range("B" & Ligne)
      .AddItem WsBase.Range("L" & Ligne)
      ReDim Preserve TLgn(0 To Poste)
      TLgn(Poste) = Ligne
      Poste = Poste + 1
      End If
    Next Ligne
  End With
End Sub
Enfin :
VB:
Private Sub lstDemandes_Click()
Dim Ligne As Long

  ' Affichage du client sélectionné
  
Ligne = TLgn(Me.lstDemandes.ListIndex)
 

hatem1234

XLDnaute Junior
Re : Problème de Listindex dans ListBox

Bonjour Dranreb,

J'ai essayé ta solution sans succès; il ne reconnait pas la fonction TLgn() et je ne connais pas la syntaxe ReDim Preserve pour pouvoir la modifier

J'ai modifié un peu le fichier dans le sens que je n'alimente plus la listebox avec la fonction .AddItem mais je vais plutôt définir un nom pour toute la zone contenant des données (voir nouv fichier ci-joint)

La listebox s'affiche bien avec toutes les données et les boutons valider/supprimer fonctionnent bien
mon problème c'est que je veux afficher dans la listebox seulement les lignes dont la valeur de la cellule D équivaut à la valeur de la textbox Nom/Prénom dans le userform

avec la nouvelle méthode par laquelle j'alimente ma listbox, je suis un peu perdu

Merci d'avance pour votre aide/suggestion
 

Pièces jointes

  • tempo-listbox-v2.xlsm
    33.2 KB · Affichages: 49

Dranreb

XLDnaute Barbatruc
Re : Problème de Listindex dans ListBox

Il reconnait forcément toujours des noms ayant fait l'objet de déclarations globales correctes.
À propos de déclarations globales, pourquoi y avez vous déclaré WsBase comme une propriété de l'UserForm ? Vous ne l'utilisez nulle par en dehors ! Private aurait suffi au lieu de Public.
 
Dernière édition:

Statistiques des forums

Discussions
312 429
Messages
2 088 350
Membres
103 822
dernier inscrit
kader55