Emplir Listview VBA excel
Résolu
lanetmel
Messages postés
200
Date d'inscription
Statut
Membre
Dernière intervention
-
lanetmel Messages postés 200 Date d'inscription Statut Membre Dernière intervention -
lanetmel Messages postés 200 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Listview vba excel exemples
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Tableau croisé dynamique excel exemple - Guide
6 réponses
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
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
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]
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]
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour Le pingou!
https://www.cjoint.com/?BEeqi7lLDOg
Voici mon fichier, ceci est pour le usf transfertlot
encore merci!
MÉlanie
https://www.cjoint.com/?BEeqi7lLDOg
Voici mon fichier, ceci est pour le usf transfertlot
encore merci!
MÉlanie