Emplir Listview VBA excel

Résolu/Fermé
lanetmel Messages postés 200 Date d'inscription mercredi 24 août 2011 Statut Membre Dernière intervention 15 mars 2018 - 1 mai 2012 à 23:28
lanetmel Messages postés 200 Date d'inscription mercredi 24 août 2011 Statut Membre Dernière intervention 15 mars 2018 - 5 mai 2012 à 04:27
Bonjour,

Je veux emplir un listview (je ne connais pas tellement) j'avais résussi avec un listbox mais comme j'avais trop de colonne et que j'ai lu que les listviews sont plus intéressants.. j'ai décidé de changer.. Mais j'aurais besoin d'un petit coup de main. Alors voilà : j'ai une feuille nommée "infos" avec toutes mes données dedans (on peut dire une Bd) à l'aide d'un Usf je veux que quand je rempli ma Textbox3 ça aille chercher dans la feuille infos dans la colonne 1 la valeur de la Textbox3 et que si il y a correspondance ça affiche certaines colonne dans ma listview (qui est dans l'usf). Je ne joindrai pas le fichier pour l'instant car il est très volumineux et loin d'être terminé...

Alors voici le code qui fonctionnait avec ma listbox
With ListBox1
.Clear
.Value = Format(ListBox1, "yyyy-mm-jj")
.Clear
.ColumnCount = 15
.ColumnWidths = "45 pt;35 pt;45 pt;40 pt;85 pt;55 pt;35pt;45 pt;35 pt;35 pt;20 pt;40 pt;55 pt;35pt;10pt"
.Clear

For Each x In Worksheets("infos").Range("A6:A" & Range("A1000").End(xlUp).Row)
If x.Value = TextBox3.Value Then
.AddItem x(1, 1) ' lot (1 = colonne dans la liste et 1 = colonne dans le fichier)
.List(.ListCount - 1, 1) = x(1, 2) ' po
.List(.ListCount - 1, 2) = x(1, 6) ' Essence
.List(.ListCount - 1, 3) = x(1, 5) ' épais
.List(.ListCount - 1, 4) = x(1, 4) ' mouvement
.List(.ListCount - 1, 5) = x(1, 11) + x(1, 13) + x(1, 15) + x(1, 17) + x(1, 19) ' grade Sel/m
.List(.ListCount - 1, 6) = x(1, 21) + x(1, 23) + x(1, 25) + x(1, 27) + x(1, 29) ' grade 1com
.List(.ListCount - 1, 7) = x(1, 31) + x(1, 33) + x(1, 35) ' grade 2 com
.List(.ListCount - 1, 8) = x(1, 37) + x(39) + x(41) ' grade 3 com
.List(.ListCount - 1, 9) = x(1, 43) ' grade 3B com
.List(.ListCount - 1, 9) = x(1, 45) ' grade pal
.List(.ListCount - 1, 9) = x(1, 47) + x(1, 49) + x(1, 51) + x(1, 53) + x(1, 55) + x(1, 57) ' grade autre
End If
Next x
(quelques additions ne fonctionnaient pas encore , mais en gros les données s'affichaient)
et voici ce que j'ai fais pour ma listview :

Private Sub Textbox3_change()
Dim i As Long, k As Byte
Dim x


With ListView1: .Gridlines = True: .View = 3: .FullRowSelect = True
With .ColumnHeaders
.Clear
.Add , , Worksheets("infos").Cells(3, 1).Value, 50
.Add , , Worksheets("infos").Cells(3, 2).Value, 40
.Add , , Worksheets("infos").Cells(3, 6).Value, 60
.Add , , Worksheets("infos").Cells(3, 5).Value, 30
.Add , , Worksheets("infos").Cells(3, 4).Value, 70
.Add , , "Sel/M", 50
.Add , , "1Com", 50
.Add , , "2Com", 50
.Add , , "3Com", 50
.Add , , "3B", 50
.Add , , "Pal", 50
.Add , , "Autre", 50
End With
For Each x In Worksheets("infos").Range("A6:A" & Range("A1000").End(xlUp).Row)
If x.Value = TextBox3.Value Then
.ListItems(.ListItems.Count).ListSubItems.Add , , Worksheets("infos").Cells(i, k)


End If
Next
End With
End Sub

mes entêtes de colonnes s'affichent, pas de problème. Mais rien ne se rempli... Je sais que mon erreur est là : .ListItems(.ListItems.Count).ListSubItems.Add , , Worksheets("infos").Cells(i, k)
je sais que cela n'est pas bon mais on dirait qu'on ne peut déterminer comme dans un listbox ce que l'on veut mettre ou?

moi je voudrais que dans la colonne 1 de la listview la colonne 1 de ma feuille info ligne?
que dans la colonne 2 de la listview la colonne 2 de ma feuille info même ligne qu'en haut
que dans la colonne 3 de la listview la colonne 6 de ma feuille info même ligne qu'en haut
que dans la colonne 4 de la listview la colonne 5 de ma feuille info même ligne qu'en haut
que dans la colonne 5 de la listview la colonne 4 de ma feuille info même ligne qu'en haut
que dans la colonne 6 de la listview les colonnes 11+13+15+17+19 s'aditionne de ma feuille info même ligne qu'en haut..
ensuite que la prochaine ligne qui concorde se mette à la suite..

Pas certaine d'être compréhensible...
merci à l'avance
(et comme vous l'avez remarquer à mes codes, je suis débutante!)
MÉlanie
A voir également:

6 réponses

Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
4 mai 2012 à 21:30
Bonjour,
J'espère avoir compris juste, j'ai modifié la procédure [Private Sub TextBox3_Change()] pour remplir la [ListView1].
Voir votre fichier : https://www.cjoint.com/?3EevDfzHsqh
1
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
2 mai 2012 à 21:52
Bonjour,
Au passage, est-ce que la demande est toujours valable par rapport aux résultats de ce poste
Copier des cellules excel dans un usf [Résolu]

0
lanetmel Messages postés 200 Date d'inscription mercredi 24 août 2011 Statut Membre Dernière intervention 15 mars 2018 4
4 mai 2012 à 04:25
Bonjour,

Oui la demande est toujours valable..

merci à l'avance!
Mélanie
0
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
4 mai 2012 à 16:04
Bonjour lanetmel,
Merci pour l'information.
Je vais regarder si c'est faisable (probablement oui selon information de gbinforme [listview]) par contre pouvez-vous mettre une copie de votre fichier (y compris la [UserForm], avec seulement une vingtaine de lignes sur la feuille ["infos"], sur https://www.cjoint.com/ et poster le lien.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lanetmel Messages postés 200 Date d'inscription mercredi 24 août 2011 Statut Membre Dernière intervention 15 mars 2018 4
4 mai 2012 à 16:11
Bonjour Le pingou!

https://www.cjoint.com/?BEeqi7lLDOg
Voici mon fichier, ceci est pour le usf transfertlot

encore merci!
MÉlanie
0
lanetmel Messages postés 200 Date d'inscription mercredi 24 août 2011 Statut Membre Dernière intervention 15 mars 2018 4
5 mai 2012 à 04:27
Bonjour Le pingou!

Tout simplement parfait! C'est exactement ça! Je te remercie sincèrement.

Mélanie
0