Copier dans une feuille les lignes sélectionnez dans la listview

cpeens

XLDnaute Occasionnel
Bonjour à tous je recherche depuis ce matin une solution qui me permetrais de copier grace à un bouton les lignes sélectionnez d'une listview.

j'arrive à faire la multi selection mais en ce qui concerne la copie il ne me copie qu'une ligne

Code:
With Worksheets("Feuil1")
Nl = [Feuil4].Range("A" & Cells.Rows.Count).End(xlUp).Row + 1
 .Cells(Nl, 1).Value = ListView1.SelectedItemListSubItems(1).Text
End With

comment puis je faire pour qu'il copie ma sélection dans ma listview merci d'avance
 

YANN-56

XLDnaute Barbatruc
Re : Copier dans une feuille les lignes sélectionnez dans la listview

Bonsoir Cpeens, Mytå, CHALET, et à ceux qui passeront par ici,

Pardon d'avoir été si expéditif, mais il est vrai qu'en l'absence de Classeur exemple,
on n'a pas trop envie d'entrer dans les détails!!!

Sauf respect pour la proposition de Chalet, il ne faut pas perdre de vue que dans l'éventualité
d'un tri alphabétique ultérieur, l'index des items de la ListView ne va plus correspondre au numéro de la ligne correspondante.
La proposition d'ajouter un SubItem de plus est aussi une bonne idée, mais le Tag est plus confortable.

Si Cpeens (Dont le profil est d'un vide dérangeant) adresse une base de données, je pourrai allez plus loin.:eek:

Amicalement, et bonne soirée à tous,

Yann
 

CHALET53

XLDnaute Barbatruc
Re : Copier dans une feuille les lignes sélectionnez dans la listview

On reprend à partir du post de Myta

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 _
.Cells(Nl, 1).Value= ListView1.ListItems(i).Text
.Cells(Nl, 2).Value
For k = 1 To 2 ' Remplacer 2 par le nombre de colonnes-1
.Cells(Nl, k+1).Value = ListView1.ListItems(i).ListSubItems(k).Text ' k+1 pour écrire à partir de la colonne 2
Next k

Next i
 

cpeens

XLDnaute Occasionnel
Re : Copier dans une feuille les lignes sélectionnez dans la listview

Re bonjour donc j'ai reboucler le tout dans un fichier joint je suis presque mais une ligne s'ajoute en plus quand je copie exemple je selection A et B et il me copie A B plus les 2 subitem

peut tont y remedier svp merci
 

Pièces jointes

  • Classeur2.xls
    41 KB · Affichages: 41
  • Classeur2.xls
    41 KB · Affichages: 56
  • Classeur2.xls
    41 KB · Affichages: 56

CHALET53

XLDnaute Barbatruc
Re : Copier dans une feuille les lignes sélectionnez dans la listview

Re,

une erreur dans ta procédure

Le fait de mettre _ derrière then, fait que les deux lignes sont considérées comme une seule ligne. Ainsi, si le test est faux il passe directement à la ligne suivante et à la troisième qu'il exécute toujours :

.Cells(nl, 2).Value = ListView1.ListItems(i).ListSubItems(1).Text

Modifie comme suit :

If ListView1.ListItems(i).Selected = True Then
.Cells(nl, 1).Value = ListView1.ListItems(i).Text
.Cells(nl, 2).Value = ListView1.ListItems(i).ListSubItems(1).Text
.Cells(nl, 3).Value = ListView1.ListItems(i).ListSubItems(2).Text
End If
 

cpeens

XLDnaute Occasionnel
Re : Copier dans une feuille les lignes sélectionnez dans la listview

Re à tous voili voilou c'est fais merci à toi chalet53 d'avoir résolu mon probleme et ta patience à tout epreuve et sa disponibilité tous fonctionne désormais convenablement un merci aussi a myta et Yann à trés bientot bonne soirée
 

Discussions similaires

Statistiques des forums

Discussions
312 281
Messages
2 086 752
Membres
103 387
dernier inscrit
Loloninho