OVH Cloud OVH Cloud

Pb de sortie d'une Listview

3 réponses
Avatar
crisben
Bonjour,

J'ai créé ma listview et tout apparait normalement l'ecran.Mon souci est :
quand j'ai selectionné toutes mes lignes je n'arrive pas à copier ceux-ci
dans des cellules sur une feuille Excel nommeé "Points".
Je vous joins le code qui sert à remplir ma listview
VPrivate Sub UserForm_Activate()

'Suppression des titres de colonnes
ListView1.ColumnHeaders.Clear

'Alimentation des titres de colonne :
'Titre de la colonne : "Référence",
'Largeur de la colonne : ListView1.Width * 0.3,
'Alignement de la colonne : lvwColumnLeft
ListView1.MultiSelect = True
ListView1.CheckBoxes = True
ListView1.FullRowSelect = True

ListView1.ColumnHeaders.Add , , "Donne", ListView1.Width * 0.2, lvwColumnLeft
ListView1.ColumnHeaders.Add , , "Vulnerabilité", ListView1.Width * 0.2,
lvwColumnLeft
ListView1.ColumnHeaders.Add , , "Contrat", ListView1.Width * 0.2,
lvwColumnCenter
ListView1.ColumnHeaders.Add , , "Joué par", ListView1.Width * 0.2,
lvwColumnCenter
ListView1.ColumnHeaders.Add , , "Résultat", ListView1.Width * 0.2,
lvwColumnCenter

Dim iLigArticle As Integer
iLigArticle = 5

'Suppression des éléments de la liste
ListView1.ListItems.Clear

While Workbooks("listview_bw.xls").Sheets("Feuil1").Cells(iLigArticle, 1) <>
""
'Alimentation des éléments de la liste
ListView1.ListItems.Add iLigArticle - 4, ,
Sheets("Feuil1").Cells(iLigArticle, 1)
ListView1.ListItems(iLigArticle - 4).SubItems(1) =
Sheets("Feuil1").Cells(iLigArticle, 2)
ListView1.ListItems(iLigArticle - 4).SubItems(2) =
Sheets("Feuil1").Cells(iLigArticle, 3)
ListView1.ListItems(iLigArticle - 4).SubItems(3) =
Sheets("Feuil1").Cells(iLigArticle, 4)
ListView1.ListItems(iLigArticle - 4).SubItems(4) =
Sheets("Feuil1").Cells(iLigArticle, 5)
iLigArticle = iLigArticle + 1
Wend
End Sub

Si quelqu'un a une solution à me propser, j'en serai content.

D'avance merci
Bon Dimanche.
Crisben

3 réponses

Avatar
Hervé
Salut Crisben,
Teste ceci :
Dim I As Integer
Dim J As Integer
With Worksheets("Points")
For I = 1 To ListView1.ListItems.Count
If ListView1.ListItems(I).Checked = True Then
J = J + 1
.Cells(J, 1) = ListView1.ListItems(I).Text
End If
Next I
End With

Hervé.

"crisben" a écrit dans le message news:

Bonjour,

J'ai créé ma listview et tout apparait normalement l'ecran.Mon souci est


:
quand j'ai selectionné toutes mes lignes je n'arrive pas à copier ceux-ci
dans des cellules sur une feuille Excel nommeé "Points".
Je vous joins le code qui sert à remplir ma listview
VPrivate Sub UserForm_Activate()

'Suppression des titres de colonnes
ListView1.ColumnHeaders.Clear

'Alimentation des titres de colonne :
'Titre de la colonne : "Référence",
'Largeur de la colonne : ListView1.Width * 0.3,
'Alignement de la colonne : lvwColumnLeft
ListView1.MultiSelect = True
ListView1.CheckBoxes = True
ListView1.FullRowSelect = True

ListView1.ColumnHeaders.Add , , "Donne", ListView1.Width * 0.2,


lvwColumnLeft
ListView1.ColumnHeaders.Add , , "Vulnerabilité", ListView1.Width * 0.2,
lvwColumnLeft
ListView1.ColumnHeaders.Add , , "Contrat", ListView1.Width * 0.2,
lvwColumnCenter
ListView1.ColumnHeaders.Add , , "Joué par", ListView1.Width * 0.2,
lvwColumnCenter
ListView1.ColumnHeaders.Add , , "Résultat", ListView1.Width * 0.2,
lvwColumnCenter

Dim iLigArticle As Integer
iLigArticle = 5

'Suppression des éléments de la liste
ListView1.ListItems.Clear

While Workbooks("listview_bw.xls").Sheets("Feuil1").Cells(iLigArticle, 1)


<>
""
'Alimentation des éléments de la liste
ListView1.ListItems.Add iLigArticle - 4, ,
Sheets("Feuil1").Cells(iLigArticle, 1)
ListView1.ListItems(iLigArticle - 4).SubItems(1) > Sheets("Feuil1").Cells(iLigArticle, 2)
ListView1.ListItems(iLigArticle - 4).SubItems(2) > Sheets("Feuil1").Cells(iLigArticle, 3)
ListView1.ListItems(iLigArticle - 4).SubItems(3) > Sheets("Feuil1").Cells(iLigArticle, 4)
ListView1.ListItems(iLigArticle - 4).SubItems(4) > Sheets("Feuil1").Cells(iLigArticle, 5)
iLigArticle = iLigArticle + 1
Wend
End Sub

Si quelqu'un a une solution à me propser, j'en serai content.

D'avance merci
Bon Dimanche.
Crisben


Avatar
crisben
Hervé, bonsoir

Merci beaucoup pour ce coup de main.Cela fonctionne.
Bonne soirée.
Crisben

"crisben" a écrit :

Bonjour,

J'ai créé ma listview et tout apparait normalement l'ecran.Mon souci est :
quand j'ai selectionné toutes mes lignes je n'arrive pas à copier ceux-ci
dans des cellules sur une feuille Excel nommeé "Points".
Je vous joins le code qui sert à remplir ma listview
VPrivate Sub UserForm_Activate()

'Suppression des titres de colonnes
ListView1.ColumnHeaders.Clear

'Alimentation des titres de colonne :
'Titre de la colonne : "Référence",
'Largeur de la colonne : ListView1.Width * 0.3,
'Alignement de la colonne : lvwColumnLeft
ListView1.MultiSelect = True
ListView1.CheckBoxes = True
ListView1.FullRowSelect = True

ListView1.ColumnHeaders.Add , , "Donne", ListView1.Width * 0.2, lvwColumnLeft
ListView1.ColumnHeaders.Add , , "Vulnerabilité", ListView1.Width * 0.2,
lvwColumnLeft
ListView1.ColumnHeaders.Add , , "Contrat", ListView1.Width * 0.2,
lvwColumnCenter
ListView1.ColumnHeaders.Add , , "Joué par", ListView1.Width * 0.2,
lvwColumnCenter
ListView1.ColumnHeaders.Add , , "Résultat", ListView1.Width * 0.2,
lvwColumnCenter

Dim iLigArticle As Integer
iLigArticle = 5

'Suppression des éléments de la liste
ListView1.ListItems.Clear

While Workbooks("listview_bw.xls").Sheets("Feuil1").Cells(iLigArticle, 1) <>
""
'Alimentation des éléments de la liste
ListView1.ListItems.Add iLigArticle - 4, ,
Sheets("Feuil1").Cells(iLigArticle, 1)
ListView1.ListItems(iLigArticle - 4).SubItems(1) =
Sheets("Feuil1").Cells(iLigArticle, 2)
ListView1.ListItems(iLigArticle - 4).SubItems(2) =
Sheets("Feuil1").Cells(iLigArticle, 3)
ListView1.ListItems(iLigArticle - 4).SubItems(3) =
Sheets("Feuil1").Cells(iLigArticle, 4)
ListView1.ListItems(iLigArticle - 4).SubItems(4) =
Sheets("Feuil1").Cells(iLigArticle, 5)
iLigArticle = iLigArticle + 1
Wend
End Sub

Si quelqu'un a une solution à me propser, j'en serai content.

D'avance merci
Bon Dimanche.
Crisben


Avatar
crisben
Bonsoir,

Effectivement cela fonctionne mais je n'arrive pas à copier les 4 autres
elements de la ligne.
J'ai une erreur de compilation quand j'ecris cela :
Private Sub BoutonEnregistrer_Click()
Dim I As Integer
Dim J As Integer
Dim iLigArticle As Integer
J = 4
With Worksheets("Points")
For I = 1 To ListView1.ListItems.Count
If ListView1.ListItems(I).Checked = True Then
If ListView1.ListItems(I) = 5 Or ListView1.ListItems(I) = 9 Then
J = J + 2
Else
J = J + 1
End If
.Cells(J, 1) = ListView1.ListItems(I).Text
.Cells(J, 2) = ListView1.ListItems(I).SubItems(1).Text (l"erreur se trouve
ici mais ou)
End If
Next I
End With
End Sub
D"avance merci por votre aide.
Bonne soiree.
Benoit

"crisben" a écrit :

Bonjour,

J'ai créé ma listview et tout apparait normalement l'ecran.Mon souci est :
quand j'ai selectionné toutes mes lignes je n'arrive pas à copier ceux-ci
dans des cellules sur une feuille Excel nommeé "Points".
Je vous joins le code qui sert à remplir ma listview
VPrivate Sub UserForm_Activate()

'Suppression des titres de colonnes
ListView1.ColumnHeaders.Clear

'Alimentation des titres de colonne :
'Titre de la colonne : "Référence",
'Largeur de la colonne : ListView1.Width * 0.3,
'Alignement de la colonne : lvwColumnLeft
ListView1.MultiSelect = True
ListView1.CheckBoxes = True
ListView1.FullRowSelect = True

ListView1.ColumnHeaders.Add , , "Donne", ListView1.Width * 0.2, lvwColumnLeft
ListView1.ColumnHeaders.Add , , "Vulnerabilité", ListView1.Width * 0.2,
lvwColumnLeft
ListView1.ColumnHeaders.Add , , "Contrat", ListView1.Width * 0.2,
lvwColumnCenter
ListView1.ColumnHeaders.Add , , "Joué par", ListView1.Width * 0.2,
lvwColumnCenter
ListView1.ColumnHeaders.Add , , "Résultat", ListView1.Width * 0.2,
lvwColumnCenter

Dim iLigArticle As Integer
iLigArticle = 5

'Suppression des éléments de la liste
ListView1.ListItems.Clear

While Workbooks("listview_bw.xls").Sheets("Feuil1").Cells(iLigArticle, 1) <>
""
'Alimentation des éléments de la liste
ListView1.ListItems.Add iLigArticle - 4, ,
Sheets("Feuil1").Cells(iLigArticle, 1)
ListView1.ListItems(iLigArticle - 4).SubItems(1) =
Sheets("Feuil1").Cells(iLigArticle, 2)
ListView1.ListItems(iLigArticle - 4).SubItems(2) =
Sheets("Feuil1").Cells(iLigArticle, 3)
ListView1.ListItems(iLigArticle - 4).SubItems(3) =
Sheets("Feuil1").Cells(iLigArticle, 4)
ListView1.ListItems(iLigArticle - 4).SubItems(4) =
Sheets("Feuil1").Cells(iLigArticle, 5)
iLigArticle = iLigArticle + 1
Wend
End Sub

Si quelqu'un a une solution à me propser, j'en serai content.

D'avance merci
Bon Dimanche.
Crisben