Ajouter des "Tag" ou "Key" aux Items d'une ListBox (Façon ListView)

YANN-56

XLDnaute Barbatruc
Bonsoir à ceux qui passeront par ici,

Je suis en train de me battre avec pour remplacer une ListView par une ListBox,
tout en conservant la possibilité d'attribuer aux Items un "Tag" et un "Key"

Il serait possible d'ajouter simplement autres colonnes à la liste,
et de venir récupérer les SubItems par suite d'un Click sur celle-ci.
Mais là, je ne suis pas très à l'aise, et je préfère la première solution qui me suffit.

L'exemple joint vous montrera mon incapacité à gérer les "List(x). ...:p

Merci pour votre aide, si vous disposez d'un morceau de temps.......J'en gagnerai énormément!

Yann
 

Fichiers joints

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Ajouter des "Tag" ou "Key" aux Items d'une ListBox (Façon ListView)

Bonjour YANN-56,

Juste un petit clin d'oeil pour la version v1 puisque cette version est ingérable en cas de d'ajout ou de suppression d'élément dans la liste après son initialisation (mais elle utilise une propriété Tag! :eek: )

Sinon pourquoi ne pas utiliser un tableau au niveau module (version 2) ?

(je ne suis pas certain d'avoir bien compris la demande)
 

Fichiers joints

Habitude

XLDnaute Accro
Re : Ajouter des "Tag" ou "Key" aux Items d'une ListBox (Façon ListView)

Bonjour Yann, mapomme


Sur le principe V1 de mapomme.
En utilisant le tag dans lequel j'ai mis le texte de la liste (clé unique) suivi de sa ligne.

J'extrait ensuite la ligne à partir d'un positionnement dans le tag.
Ce qui permet le tri, l'ajout à la fin et la supression par la fonction Replace.


tu peux aussi utiliser une matrice dynamique, un objet de données ou encore un dictionnaire associé à un type défini.
 

Fichiers joints

YANN-56

XLDnaute Barbatruc
Re : Ajouter des "Tag" ou "Key" aux Items d'une ListBox (Façon ListView)

Bonsoir à ceux qui regarderont la belle démonstration de mapomme.
(Pas de moi! => de lui!) :)

Mon chargement de la ListBox à partir d'une Feuille n'est qu'un exemple.
Dans mon appli cela est un peu plus complexe.

Mais il est certain qu'avec les Fichiers que tu as joins, je serais vraiment un âne de pas savoir les adapter!

Superbe gentillesse de ta part d'avoir pris le temps de me construire cette aide.

Grand Merci à toi.

Yann
 

YANN-56

XLDnaute Barbatruc
Re : Ajouter des "Tag" ou "Key" aux Items d'une ListBox (Façon ListView)

Re mapomme:), Habitude:),

Habitude, comme d'hab. tu vas me booster pour en apprendre encore plus.

Tu m'impressionnes toujours avec tes connaissances*! (*Je ne parle pas de tes copines ... Of Course)

Quel bonheur que vous soyez passés par là!!!

Sauf que si demain au saut du lit, j'ai les yeux rouges,
ce sera par trop m'être délecté pendant de longues heures à adapter vos codes à mon projet.:p

Mon oreiller se joint à moi pour vous dire "Merci"

Amicalement comme il est évident,

Yann
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Ajouter des "Tag" ou "Key" aux Items d'une ListBox (Façon ListView)

(re) Bonsoir YANN-56,

Juste une petite interrogation. Pourquoi ne pas quand même utiliser une listbox à trois colonnes dont les deux dernières seraient masquées?
La syntaxe (en utilisant List) m'apparait assez pratique puisqu'on l'utilise 'comme' un tableau (ligne, colonne).
 

Fichiers joints

Dernière édition:

YANN-56

XLDnaute Barbatruc
Re : Ajouter des "Tag" ou "Key" aux Items d'une ListBox (Façon ListView)

Bonjour à ceux qui repasseront par là,

Pourquoi construire une usine à gaz, quand un briquet peut suffire!

Ne connaissant rien aux Listboxes, j'ai tenté d'appliquer les méthodes "ListView"... => Erreur!!!:eek:

Les "Tag" ou "Key" semblent ne pas être attribuables Item par Item.
Sauf à la ListBox elle-même, mais qui va impliquer "Split" et Séparateurs, comme vous l'avez démontré.

A noter que ce "Tag" peut être intéressant en le transportant dans celui d'un contrôle d'un autre USF.
Le premier est Unload, mais le second aura cette mémoire présente où l'on veut, et utilisable!
(Voire dans une variable "Public"

Encore Merci à vous: mapomme et Habitude.
Vous m'avez appris beaucoup et stimulé à apprendre à utiliser les ListBoxes.

En cette période d'examens; l'élève rend son devoir à ses profs:...(PJ):)

Amicalement, et au plaisir (Surtout pour moi)

Yann
 

Fichiers joints

Dernière édition:

Habitude

XLDnaute Accro
Re : Ajouter des "Tag" ou "Key" aux Items d'une ListBox (Façon ListView)

Au plaisir d'avoir été relativement utile.

Moi aussi j'ai une question. Pourquoi remplacer la listview pas une listbox ?
 

YANN-56

XLDnaute Barbatruc
Re : Ajouter des "Tag" ou "Key" aux Items d'une ListBox (Façon ListView)

Bonjour Habitude:) et à ceux qui passeront par là,

Pourquoi remplacer la listview pas une listbox ?

Pour répondre à ta question; regarde ici et les divers liens où ce problème à été soulevé.
http://www.excel-downloads.com/forum/184291-utilisation-du-listview.html

Souhaitant partager* mon chantier en cours; il m'est indispensable d'oublier les ListView.
(* Et être éventuellement conseillé)

Je regrette vivement car elles offrent beaucoup plus de possibilités....

Dont celles que tu m'as enseignées.!!!

Amicalement,

Yann
 

Habitude

XLDnaute Accro
Re : Ajouter des "Tag" ou "Key" aux Items d'une ListBox (Façon ListView)

Re

Yann
Il ne serait pas plus simple que de supprimer les exd de l'usager à l'ouverture de l'application ?
 

YANN-56

XLDnaute Barbatruc
Re : Ajouter des "Tag" ou "Key" aux Items d'une ListBox (Façon ListView)

Bonjour Cher Ami Habitude,:)

Je suis bien heureux de t'entendre.

Il ne serait pas plus simple que de supprimer les exd de l'usager à l'ouverture de l'application ?
1) Mon petit niveau ne me permet pas de savoir le faire.
2) Est-il acceptable de venir trifouiller dans l'ordi de l'utilisateur? :confused:

Si cette manipulation n'est pas irréversible pour lui:.... Pourquoi pas!

Par ailleurs, je me suis énervé gravement avec les limites des ListBox!!!!

Aussi: Pour mon Appli en cours; j'ai abandonné l'idée de les substituer aux ListView.

Il viendra bien un temps où les mises à jour d'Office 2010 les prendront en compte!
Et tant pis pour ceux qui ont été trop tentés par une prétendue évolution.

(Mon chantier est quasiment terminé, et je vais bientôt le soumettre aux avis)

Amicalement, et au plaisir de te lire,

Yann
 

Habitude

XLDnaute Accro
Re : Ajouter des "Tag" ou "Key" aux Items d'une ListBox (Façon ListView)

2) Est-il acceptable de venir trifouiller dans l'ordi de l'utilisateur? :confused:

Si cette manipulation n'est pas irréversible pour lui:.... Pourquoi pas!
Pour ma part, ce n'est qu'un fichier temporaire.
Je n'ai visiblement pas ton éthique.

Bonne idée que de conserver les listview.
Et pourquoi pas le TreeView.

Bien à toi
 

YANN-56

XLDnaute Barbatruc
Re : Ajouter des "Tag" ou "Key" aux Items d'une ListBox (Façon ListView)

Re Habitude,

Je te soumettrai en premier lieu mon projet,
car je sais que tu es le plus à même d'en faire une critique constructive.

Le silence des autres est assourdissant!

Tu me répondras suivant ton envie et ta disponibilité.

Grand Merci pour ta sympathie et tes avis pertinents ....A plus tard en M.P.

Yves, alias YANN-56
 

david84

XLDnaute Barbatruc
Re : Ajouter des "Tag" ou "Key" aux Items d'une ListBox (Façon ListView)

Bonsoir,
Une question en passant par rapport aux exemples fournis : pourquoi utiliser Tag ?
Il me semble que le code ci-dessous donne le même résultat :
Private Sub UserForm_Initialize()
With Me.ListBox1
For i = 1 To 7
.AddItem ActiveSheet.Cells(i, 1).Value
Next i
End With
End Sub

Private Sub ListBox1_Click()
Label1.Caption = ListBox1.Text
Label4.Caption = ListBox1.ListIndex + 1
Label2.Caption = ActiveSheet.Cells(Label4.Caption, 2)
Label3.Caption = ActiveSheet.Cells(Label4.Caption, 3)
End Sub
Comme je n'utilise pas cette propriété d'habitude, le sujet m'intéresse.
J'ai regardé vite fait sur le Net et cette propriété me semble intéressante.
Je comprends que le code présenté ne soit qu'un exemple d'utilisation possible mais auriez-vous en tête des exemples d'utilisation dans laquelle elle présente un intérêt qui lui soit spécifique, qui ne peut être obtenu qu'en utilisant cette propriété ?
A+
 

YANN-56

XLDnaute Barbatruc
Re : Ajouter des "Tag" ou "Key" aux Items d'une ListBox (Façon ListView)

Bonsoir David,:)

Merci d'avoir regardé cette discussion.

Je suis obligé, à cette heure, de combler les vides de mon bidon,
mais promis; je vais te construire un exemple sur le bien fondé des "Tags"

Fini les variables "Public" dont on a mal précisé le genre au bon endroit.... Et c...

Il y a mieux dans cette utilisation:
Un USF avec des "Tag" dans "x" nombre de contrôles "Bidons",
qui vont engranger tout ce que l'on aura bien voulu y mettre.

De venir y récupérer une adresse de Feuille, un chemin de Fichier,
le nombre d'Items d'une Liste ...Et c. sera de la roupie de sansonnet par la suite.

Sauf si le match de ce soir n'est pas passionnant...........A dans peu de temps.

Amicalement,

Yann
 

Habitude

XLDnaute Accro
Re : Ajouter des "Tag" ou "Key" aux Items d'une ListBox (Façon ListView)

Rebonjour

@david
Les tags évite de travailler à la fois sur la liste, à la fois sur la feuille.
Sans les tags, pour un tri, tu dois trier les données sur la feuille et ensuite refaire un AddItem.
Avec le tag qui conserve le numéro de la ligne, tu peux trier la liste directement. L'ordre entre la liste et la feuille ne sont plus les même.
 

david84

XLDnaute Barbatruc
Re : Ajouter des "Tag" ou "Key" aux Items d'une ListBox (Façon ListView)

Re
Les tags évite de travailler à la fois sur la liste, à la fois sur la feuille.
Sans les tags, pour un tri, tu dois trier les données sur la feuille et ensuite refaire un AddItem.
Avec le tag qui conserve le numéro de la ligne, tu peux trier la liste directement. L'ordre entre la liste et la feuille ne sont plus les même.
Peut-être que je comprends mal ce que tu veux m'expliquer mais jusqu'à présent quand j'ai besoin de trier les données dans un code, je ne les trie pas sur la feuille : j'utilise un Quick Sort.
Peux-tu mettre un exemple concret de ce que tu veux dire ?
Merci !
A+
 

david84

XLDnaute Barbatruc
Re : Ajouter des "Tag" ou "Key" aux Items d'une ListBox (Façon ListView)

Re
Ok, merci pour cet exemple.
Mais là encore, je n'ai pas absolument besoin de Tag pour obtenir le même résultat (l'utilisation de Match par exemple le fait également).
Maintenant que j'ai cette propriété en tête, je vais regarder d'autres exemples utilisant cette propriété pour m'en faire une idée plus précise et repérer les situations où elle me semble être "incontournable".
Le fait par exemple qu'elle évite de passer par des variables publiques ou pour le moins déclarées en tête de module me paraît intéressant. En fait, j'ai l'impression que Tag sert à stocker des informations, les-dites infos devenant de fait des "propriétés" du contrôle et peuvent être utilisées comme telles.
Est-ce cela ?
A+
 

Fo_rum

XLDnaute Accro
Re : Ajouter des "Tag" ou "Key" aux Items d'une ListBox (Façon ListView)

Bonjour,

Re
Le fait par exemple qu'elle évite de passer par des variables publiques ou pour le moins déclarées en tête de module me paraît intéressant.
Si tu ne passes par une variable, tu es obligé de déterminer à chaque fois la donnée nécessaire et ce peut-être des lignes plus ou moins compliquées.
Pour garder des informations, il y a plus d'une façon. Avec un contrôle "ListBox", on peut utiliser des colonnes supplémentaires, ou des concaténations (voir l'exemple joint) ou ...
 

Fichiers joints

Discussions similaires


Haut Bas