bonjour a vous
quel code ou autre peut-on utiliser pour pouvoir sélectionner plusieurs lignes dans une listview , mais pas forcément l'une après l'autre
Merci par avance
Pascal
Version imprimable
bonjour a vous
quel code ou autre peut-on utiliser pour pouvoir sélectionner plusieurs lignes dans une listview , mais pas forcément l'une après l'autre
Merci par avance
Pascal
Bonjour,
Je te conseille la lecture de ce tutoriel Utiliser le contrôle ListView en VBA Excel. Il y a un chapitre consacré à ta question.
bonjour Philippe
merci du lien mais je l'avais déja consulter et la partie
ne fait pas ce que je voudrais, a moins que ce soit une partie que tu veux que j'utiliseCode:
1
2
3
4
5
6
7
8 Dim i As Integer For i = 1 To ListView1.ListItems.Count 'Affiche le contenu de la 1ere colonne pour chaque ligne sélectionnée If ListView1.ListItems(i).Selected = True Then _ MsgBox ListView1.ListItems(i).Text Next
Pascal
Bonjour,
Je ne sais pas ce que tu veux exactement.
Si c'est pour vérifier quelles sont les lignes sélectionnées c'est le bon code si c'est à chaque sélection, il y a sans doute une procédure événementielle qui intercepte chaque clic.
J'avoue ne pas avoir beaucoup d'expérience sur ce contrôle.
Je ne l'ai utilisé que dans une application. Il est intéressant mais j'ai eu beaucoup de soucis avec les différentes versions d'excel, Windows etc... ce qui m'a décourager à prolonger l'expérience.
bonjour Philippe
merci de ta réponse, ce que je cherche a faire c'est de sélectionner des lignes dans la listview pour les envoyer dans la feuille d'un autre classeur qui est sous c:\facturation\commande
justement dans le lien j'ai trouvé ce code qui envoi le contenu de la listview dans la feuille active, mais ce n'est dans la feuille active que je veux inscrire les données, ni toutes les données
PascalCode:
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub CommandButton2_Click() Dim i As Integer, j As Integer 'Boucle sur toutes les lignes For i = 1 To ListView1.ListItems.Count Cells(i, 1) = ListView1.ListItems(i).Text 'Boucle sur les colonnes For j = 1 To ListView1.ColumnHeaders.Count - 1 Cells(i, j + 1) = ListView1.ListItems(i).ListSubItems(j).Text Next j Next i End Sub
Bonjour Pascal,
Il suffit de préciser la feuille et de préférence le classeur des cellules.
Exemple non testé écrit de mémoire.
Code:ThisWorkbook.WorkSheets("maFeuille").Cells(i, j + 1) = ListView1.ListItems(i).ListSubItems(j).Text
la méthode de Philippe fonctionne parfaitement.
maintenant est-ce-que c'est ça sue tu cherche!
maintenant suivant comment tu as chargé ta liste tu peu recupérer le n° de ligne dans Excel.Code:
1
2
3
4
5 For i = 1 To ListView1.ListItems.Count 'Affiche le contenu de la 1ere colonne pour chaque ligne sélectionnée If ListView1.ListItems(i).Selected = True Then _ MsgBox ListView1.ListItems(i,0) & ListView1.ListItems(i,1) Next
Code:
1
2
3
4 Me.ListBox1.ColumnWidths = "0;150;150" ListBox1.AddItem cells(i, 1).Row ListBox1.List(Me.ListBox1.ListCount - 1, 1) = cells(i, 1) ListBox1.List(Me.ListBox1.ListCount - 1, 2) = cells(i, 2)
bonsoir a vous Philippe et durupt ainsi que le forum
tant que je ne peux pas sélectionner(surlignr) les lignes dans la listview, je ne sais pas si le code de Philippe fonctionne, mais je le garde
pour une meilleure compréhension je vais vous joindre un exemple de ce que je voudrais
j' ai été obliger d'enregistrer sous xls car sous xlsm je n'ai pas pu
Pascal