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

  • Initiateur de la discussion Initiateur de la discussion cpeens
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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.😱

Amicalement, et bonne soirée à tous,

Yann
 
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
 
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

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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour