OVH Cloud OVH Cloud

Pb listview

4 réponses
Avatar
JCM
Bonjour =E0 tous

je voudrais lire les ligne d'un listview (2 colonnes),=20
voici mon code :

Dim objListItem As ListItem

For Each objListItem In LVdepense.ListItems
Debug.Print objListItem.ListSubItems(1).Text
Debug.Print objListItem.ListSubItems(2).Text
Next objListItem

sur le premier Debug.print il me donne le contenu de la=20
deuxieme colonne et sur la deuxieme ligne cela beug

J'ai essay=E9 de remplacer (1) par (0) et cela beug

D'autre part comment obtenir le debug.print d'une ligne en=20
cliquant dessus

Merci de vos r=E9ponses
Cordialement
JCM

4 réponses

Avatar
Zoury
Salut Jean-Claude! :O)

J'ai essayé de remplacer (1) par (0) et cela beug
D'autre part comment obtenir le debug.print d'une ligne en
cliquant dessus



L'index pour les SubItems commence à 1, pour obtenir le texte de la première
colonne il faut lire la propriété Text du ListItem.. Pour afficher le tout
lors du clique sur l'item il faut implémenté l'événement ItemClick()
'***
' Ajouter Microsoft Windows Common Control Library
' Form1
' 1 ListView
Option Explicit

Private Sub Form_Load()

Dim li As ListItem
With ListView1
.View = lvwReport
.ColumnHeaders.Add
.ColumnHeaders.Add
.ColumnHeaders.Add
.ColumnHeaders.Add
.ColumnHeaders.Add
Set li = .ListItems.Add(, , "Item 1")
li.SubItems(1) = "subitem 1.1"
li.SubItems(2) = "subitem 1.2"
li.SubItems(3) = "subitem 1.3"
li.SubItems(4) = "subitem 1.4"
Set li = .ListItems.Add(, , "Item 2")
li.SubItems(1) = "subitem 2.1"
li.SubItems(2) = "subitem 2.2"
li.SubItems(3) = "subitem 2.3"
li.SubItems(4) = "subitem 2.4"
Set li = .ListItems.Add(, , "Item 3")
li.SubItems(1) = "subitem 3.1"
li.SubItems(2) = "subitem 3.2"
li.SubItems(3) = "subitem 3.3"
li.SubItems(4) = "subitem 3.4"
End With

End Sub

Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
Dim sColValues As String
Dim i As Long
For i = 1 To ListView1.ColumnHeaders.Count - 1
sColValues = sColValues & "," & Item.SubItems(1)
Next i
Debug.Print Item.Text & sColValues
End Sub
'***

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
Avatar
JCM
Salut Zoury

Merci pour tes réponses, OK pour le click sur le listview
cela marche.
Mais j'avais un autre problème : je veux récuperer les
données des deux colonnes de mon listview à partir d'un
click bouton et mon code beug

Private Sub CmdCreerModele_Click()
Dim objListItem As ListItem

For Each objListItem In LVdepense.ListItems
Debug.Print objListItem.ListSubItems(1).Text
Debug.Print objListItem.ListSubItems(2).Text
Next objListItem
End Sub

En fait la premiere ligne me donne le texte de la deuxieme
colonne et je ne peux pas avoir le texte de la première

As-tu vu que je t'ai encore sollicité pour mon problème
précédent dans un précédent message (je sais je suis un
peu pénible et surtout pas tres doué, j'ai toutefois une
excuse je suis un papi de 60 printemps, mais grace à vous
je me perfectionne)

Cordialement
Jean Claude


de mon listview
-----Message d'origine-----
Salut Jean-Claude! :O)

J'ai essayé de remplacer (1) par (0) et cela beug
D'autre part comment obtenir le debug.print d'une ligne




en
cliquant dessus



L'index pour les SubItems commence à 1, pour obtenir le


texte de la première
colonne il faut lire la propriété Text du ListItem.. Pour


afficher le tout
lors du clique sur l'item il faut implémenté l'événement


ItemClick()
'***
' Ajouter Microsoft Windows Common Control Library
' Form1
' 1 ListView
Option Explicit

Private Sub Form_Load()

Dim li As ListItem
With ListView1
.View = lvwReport
.ColumnHeaders.Add
.ColumnHeaders.Add
.ColumnHeaders.Add
.ColumnHeaders.Add
.ColumnHeaders.Add
Set li = .ListItems.Add(, , "Item 1")
li.SubItems(1) = "subitem 1.1"
li.SubItems(2) = "subitem 1.2"
li.SubItems(3) = "subitem 1.3"
li.SubItems(4) = "subitem 1.4"
Set li = .ListItems.Add(, , "Item 2")
li.SubItems(1) = "subitem 2.1"
li.SubItems(2) = "subitem 2.2"
li.SubItems(3) = "subitem 2.3"
li.SubItems(4) = "subitem 2.4"
Set li = .ListItems.Add(, , "Item 3")
li.SubItems(1) = "subitem 3.1"
li.SubItems(2) = "subitem 3.2"
li.SubItems(3) = "subitem 3.3"
li.SubItems(4) = "subitem 3.4"
End With

End Sub

Private Sub ListView1_ItemClick(ByVal Item As


MSComctlLib.ListItem)
Dim sColValues As String
Dim i As Long
For i = 1 To ListView1.ColumnHeaders.Count - 1
sColValues = sColValues & "," & Item.SubItems(1)
Next i
Debug.Print Item.Text & sColValues
End Sub
'***

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 -


http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml -


http://www.mztools.com/


.



Avatar
Guy DETIENNE
Salut ;O)

La première colonne ne s'interroge pas avec ListSubItems... Ton problème
vient de là.

Change ces lignes
Debug.Print objListItem.ListSubItems(1).Text
Debug.Print objListItem.ListSubItems(2).Text
en
Debug.Print objListItem.Text
Debug.Print objListItem.ListSubItems(1).Text


Guy


"JCM" a écrit dans le message de
news:581501c47471$9dcf1fe0$
Salut Zoury

Merci pour tes réponses, OK pour le click sur le listview
cela marche.
Mais j'avais un autre problème : je veux récuperer les
données des deux colonnes de mon listview à partir d'un
click bouton et mon code beug

Private Sub CmdCreerModele_Click()
Dim objListItem As ListItem

For Each objListItem In LVdepense.ListItems
Debug.Print objListItem.ListSubItems(1).Text
Debug.Print objListItem.ListSubItems(2).Text
Next objListItem
End Sub

En fait la premiere ligne me donne le texte de la deuxieme
colonne et je ne peux pas avoir le texte de la première

As-tu vu que je t'ai encore sollicité pour mon problème
précédent dans un précédent message (je sais je suis un
peu pénible et surtout pas tres doué, j'ai toutefois une
excuse je suis un papi de 60 printemps, mais grace à vous
je me perfectionne)

Cordialement
Jean Claude


de mon listview
-----Message d'origine-----
Salut Jean-Claude! :O)

J'ai essayé de remplacer (1) par (0) et cela beug
D'autre part comment obtenir le debug.print d'une ligne




en
cliquant dessus



L'index pour les SubItems commence à 1, pour obtenir le


texte de la première
colonne il faut lire la propriété Text du ListItem.. Pour


afficher le tout
lors du clique sur l'item il faut implémenté l'événement


ItemClick()
'***
' Ajouter Microsoft Windows Common Control Library
' Form1
' 1 ListView
Option Explicit

Private Sub Form_Load()

Dim li As ListItem
With ListView1
.View = lvwReport
.ColumnHeaders.Add
.ColumnHeaders.Add
.ColumnHeaders.Add
.ColumnHeaders.Add
.ColumnHeaders.Add
Set li = .ListItems.Add(, , "Item 1")
li.SubItems(1) = "subitem 1.1"
li.SubItems(2) = "subitem 1.2"
li.SubItems(3) = "subitem 1.3"
li.SubItems(4) = "subitem 1.4"
Set li = .ListItems.Add(, , "Item 2")
li.SubItems(1) = "subitem 2.1"
li.SubItems(2) = "subitem 2.2"
li.SubItems(3) = "subitem 2.3"
li.SubItems(4) = "subitem 2.4"
Set li = .ListItems.Add(, , "Item 3")
li.SubItems(1) = "subitem 3.1"
li.SubItems(2) = "subitem 3.2"
li.SubItems(3) = "subitem 3.3"
li.SubItems(4) = "subitem 3.4"
End With

End Sub

Private Sub ListView1_ItemClick(ByVal Item As


MSComctlLib.ListItem)
Dim sColValues As String
Dim i As Long
For i = 1 To ListView1.ColumnHeaders.Count - 1
sColValues = sColValues & "," & Item.SubItems(1)
Next i
Debug.Print Item.Text & sColValues
End Sub
'***

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 -


http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml -


http://www.mztools.com/


.



Avatar
JCM
Salut Guy

et merci à tous deux pour vos réponses, problème réglé
Cordialement
JCM
-----Message d'origine-----
Salut ;O)

La première colonne ne s'interroge pas avec


ListSubItems... Ton problème
vient de là.

Change ces lignes
Debug.Print objListItem.ListSubItems(1).Text
Debug.Print objListItem.ListSubItems(2).Text
en
Debug.Print objListItem.Text
Debug.Print objListItem.ListSubItems(1).Text


Guy


"JCM" a écrit dans le


message de
news:581501c47471$9dcf1fe0$
Salut Zoury

Merci pour tes réponses, OK pour le click sur le listview
cela marche.
Mais j'avais un autre problème : je veux récuperer les
données des deux colonnes de mon listview à partir d'un
click bouton et mon code beug

Private Sub CmdCreerModele_Click()
Dim objListItem As ListItem

For Each objListItem In LVdepense.ListItems
Debug.Print objListItem.ListSubItems(1).Text
Debug.Print objListItem.ListSubItems(2).Text
Next objListItem
End Sub

En fait la premiere ligne me donne le texte de la deuxieme
colonne et je ne peux pas avoir le texte de la première

As-tu vu que je t'ai encore sollicité pour mon problème
précédent dans un précédent message (je sais je suis un
peu pénible et surtout pas tres doué, j'ai toutefois une
excuse je suis un papi de 60 printemps, mais grace à vous
je me perfectionne)

Cordialement
Jean Claude


de mon listview
-----Message d'origine-----
Salut Jean-Claude! :O)

J'ai essayé de remplacer (1) par (0) et cela beug
D'autre part comment obtenir le debug.print d'une ligne




en
cliquant dessus



L'index pour les SubItems commence à 1, pour obtenir le


texte de la première
colonne il faut lire la propriété Text du ListItem.. Pour


afficher le tout
lors du clique sur l'item il faut implémenté l'événement


ItemClick()
'***
' Ajouter Microsoft Windows Common Control Library
' Form1
' 1 ListView
Option Explicit

Private Sub Form_Load()

Dim li As ListItem
With ListView1
.View = lvwReport
.ColumnHeaders.Add
.ColumnHeaders.Add
.ColumnHeaders.Add
.ColumnHeaders.Add
.ColumnHeaders.Add
Set li = .ListItems.Add(, , "Item 1")
li.SubItems(1) = "subitem 1.1"
li.SubItems(2) = "subitem 1.2"
li.SubItems(3) = "subitem 1.3"
li.SubItems(4) = "subitem 1.4"
Set li = .ListItems.Add(, , "Item 2")
li.SubItems(1) = "subitem 2.1"
li.SubItems(2) = "subitem 2.2"
li.SubItems(3) = "subitem 2.3"
li.SubItems(4) = "subitem 2.4"
Set li = .ListItems.Add(, , "Item 3")
li.SubItems(1) = "subitem 3.1"
li.SubItems(2) = "subitem 3.2"
li.SubItems(3) = "subitem 3.3"
li.SubItems(4) = "subitem 3.4"
End With

End Sub

Private Sub ListView1_ItemClick(ByVal Item As


MSComctlLib.ListItem)
Dim sColValues As String
Dim i As Long
For i = 1 To ListView1.ColumnHeaders.Count - 1
sColValues = sColValues & "," & Item.SubItems(1)
Next i
Debug.Print Item.Text & sColValues
End Sub
'***

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 -


http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml -


http://www.mztools.com/


.





.