Perdu avec listview!!!

jclarun Messages postés 6 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 16 décembre 2008 - 13 déc. 2008 à 22:54
jclarun Messages postés 6 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 16 décembre 2008 - 16 déc. 2008 à 20:44
bonjour à tous!!!
je vous explique, j'essaie de remplir une listview (dont je viens à peine de connaitre l'existence...), avec un tableau a plusieurs dimensions, mais rien ne fonctionne.
je vous donne le code que j'ai essayé

dim derlig, dercol, L, C
dim plage as range
dim tableau as variant

derlig=activesheet.usedrange.rows.count
dercol=activesheet.usedrange.columns.count

set plage=range(cells(1,1),cells(derlig,dercol))
redim tableau(derlig,dercol)
tableau=plage
'jusque la, tous va bien

for L=1 to derlig
C=1
ListView1.ListItems(L).add(*) , , tableau(L,C)

for C=2 to dercol
ListView1.ListItems(L).ListSubItems(C).add, , tableau(L,C)
next C

next L

et la, ca bloque au niveau du .add(*) (sans le (*) dans le programme): membre de donnee ou methode introuvable

c'est où que j'a merdu svp??

jc

6 réponses

pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
14 déc. 2008 à 00:29
  bonsoir
pour exemple voici un bout de code qui tourne nickel chez moi
a condition que dans les propriétés de ta listview tu aies au moins autant de colonnes que de subitems dans ton code
 
Dim itmX As ListItem
    List1.ListItems.Clear
    For I = 1 To UBound(aPlans, 2)
            Set itmX = List1.ListItems.Add()
            itmX.Text = aPlans(5, I)
            itmX.SubItems(1) = aPlans(6, I)
            itmX.SubItems(2) = aPlans(7, I)
    Next I

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
0
jclarun Messages postés 6 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 16 décembre 2008
14 déc. 2008 à 02:33
merci, je vais essayer ca.
Par contre, pour le nombre de colonne, on fait comme la listbox (columncount), ou on determine le nombre de colonnes par declration de columnsheads?
Si j'ai bien capté ton code, ton tableau s'appelle aPlan?

Pour mon cas, mon tableau peut avoir de 7 a 13 colonnes,selon la feuille selectionnee, donc, ma listview pareille; de 7 a 13 colonnes.
ne peut on pas adapter la partie: "itmX.SubItems(1) = aPlans(6, I)" pour boucler
sur le nombre de colonnes?

en tout cas, merci pour cette reponse rapide.
jc
0
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
14 déc. 2008 à 10:36
bien sûr tu peux faire une boucle pour renseigner les subitems
je ne l'ai pas fait n'en ayant que deux dans  ma listview
par contre si tu as de 7 à 13 colonnes  dans ton tableau il faut que ta listview aie au moins 13 subitems si tu ne veux pas avoir d'erreur  lors du remplissage.
je ne me suis pas penché dessus et ne sais donc pas si on peut créer des subitems dynamiquement par code  moi je les ai toujours créés au départ par la page de propriété de la listview

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
0
jclarun Messages postés 6 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 16 décembre 2008
14 déc. 2008 à 16:00
ok; je vais me pencher sur la chose.
Ca ressemble a quoi avec les columnheads, parce que je n'arrive pas a afficher les entetes (malgres hidecolumnheads=false)...

merci pour tes reponses en tout cas
bonne journee

jc
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
14 déc. 2008 à 16:08
pour voir les entete des colonnes il faut être en " 3 - lvwReport " dans la propriété view de la listview sinon tu n'a que l'item et pas les subitems

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
0
jclarun Messages postés 6 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 16 décembre 2008
16 déc. 2008 à 20:44
c'est bon, je l'ai!!!
ca permet d'alimenter la listview quelque soit la taille du tableau:

Dim iT As ListItem 'item de la listview

Dim DErCOL, DErLIG, tabLo
Dim plaGe As Range
dim l,c            'ligne et colonne dans tableau
DErLIG = ActiveSheet.UsedRange.Rows.Count
DErCOL = ActiveSheet.UsedRange.Columns.Count

Set plaGe = Range(Cells(1, 1), Cells(DErLIG, DErCOL))

ReDim tabLo(DErLIG, DErCOL)

tabLo = plaGe
    aFF.ListItems.Clear

    For l = 1 To DErLIG
            Set iT = aFF.ListItems.Add()
            c = 1
            iT.Text = tabLo(l, c)
            c = 2
           
        Do While c <= DErCOL
            iT.SubItems(c - 1) = tabLo(l, c)
            c = c + 1
           
Loop
    Next l

désolé pour les majuscules en plein milieu des mots, c'est ma facon d'eviter les faute de frappe dans les variables.

jc
0
Rejoignez-nous