IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

remplissage d'une listview


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 502
    Par défaut remplissage d'une listview
    bonjour
    je decouvre les listviews.

    actuellement je cherche à remplir une listview
    j'ai intialise ma listview (3 colonnes et noms d'entete N°fiche,installation,sitegeo respectivement de la largeur 80.30 et 80

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    with listview1.ColumnHeaders
    .clear
    .Add , , "N°fiche", 80
    .Add , , "installation", 30
    .Add , , "sitegeo", 80
    end with


    maintenant je cherche à remplir

    apres un test
    j'ai


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ............
    derniereligne = Sheets("feuil2").Range("A4").End(xlDown).Row 'derniere ligne occupee dans colonne A
     
    For lignedebut = 4 To derniereligne 'on test le contenu des combobox   
    ............................................
    .................................................
    if test+test....... then 
    ListView1.ListItems(lignedebut).ListSubItems.Add(1) , ,Sheets("feuil2").Cells(lignedebut, 1).Value
    ListView1.ListItems(lignedebut).ListSubItems.Add(2) , ,Sheets("feuil2").Cells(lignedebut, 2).Value
     
    etc....


    j'ai un retour erreur index hors limite


    comme on le devine, je recupere le contenu dans la feuil2 en colon1 qui correspondra à la colonne une de ma listview
    merci

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Tu ne peux tout simplement pas ajouter de subitems sans avoir au préalable ajouter l'Item !

    Regarde ce que fait ceci (ce n'est qu'un exemple) et comprends-en le mécanisme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Randomize
        ListView1.ColumnHeaders.Add , , "Nom", ListView1.Width / 3
        ListView1.ColumnHeaders.Add , , "prénom ID", ListView1.Width / 3, lvwColumnCenter
        ListView1.ColumnHeaders.Add , , "date de naissance", ListView1.Width / 3
        ListView1.ColumnHeaders.Add , , "", 0
        Dim itmX As ListItem
        For i = 1 To 10
           Set itmX = ListView1.ListItems.Add(, , Int((9 * Rnd) + 1))
           itmX.SubItems(1) = "a" & Int((9 * Rnd) + 1)
           If i Mod 2 = 0 Then
              itmX.SubItems(2) = "17/02/2000"
               itmX.SubItems(3) = "20000117"
           Else
              itmX.SubItems(2) = "20/03/2002"
              itmX.SubItems(3) = "20020320"
           End If
        Next

  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 502
    Par défaut
    ouf ,
    j'ai du mal , pas tout compris

    j'ai rajouter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    ListView1.ListItems.Add , , ""
    ListView1.ListItems(jj).ListSubItems.Add (1), , Sheets("feuil2").Cells(lignedebut, 2).Value

    pas tout compris, tout la meme erreur

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    je ne vois nulle part où tu constitues ta collection listitem (ce que j'ai appelé itemx) !!!

    Elle est indispensable et doit être redéfinie ( Set ...) pour chaque item ajouté !!!

    Aucun "bricolage" ne viendra remplacer ce mécanisme inévitable ...

  5. #5
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 502
    Par défaut
    merci ucfoutu
    je commence à obtenir 2 ou trois truc ...

    je poursuis

    voila pour ou j'en suis , ca peut aider
    pour initialisation dans la procedure userforminitialize
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    ................
    With ListView1
    With .ColumnHeaders
    .Clear
    .Add , , "lignefeuil2", 30
    .Add , , "N° fiche", 30
    .Add , , "type instal", 50
    .Add , , "geographie", 80
    .Add , , "ETABLISSEMENT OCCUPANT", 30
    ...........
     
     
    End With
     
    End With


    puis pour le remplissage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    With ListView1
     
                     .ListItems.Add , , lignedebut
                     .View = lvwReport 'affiche en details
            End With
     
     
               ListView1.ListItems(lig).ListSubItems.Add , , Sheets("feuil2").Cells(lignedebut, 1).Value 'N°fiche  col2
               ListView1.ListItems(lig).ListSubItems.Add , , Sheets("feuil2").Cells(lignedebut, 2).Value 'typeinstall clo3
               ListView1.ListItems(lig).ListSubItems.Add , , Sheets("feuil2").Cells(lignedebut, 4).Value 'geographie col4"
               ListView1.ListItems(lig).ListSubItems.Add , , Sheets("feuil2").Cells(lignedebut, 5).Value 'occupant col5"
               ListView1.ListItems(lig).ListSubItems.Add , , Sheets("feuil2").Cells(lignedebut, 34).Value 'proprio col6"
               ListView1.ListItems(lig).ListSubItems.Add , , Sheets("feuil2").Cells(lignedebut, 20).Value 'n°LC col7"
               ListView1.ListItems(lig).ListSubItems.Add , , 
     
     
     
     lig = lig + 1 'compteur ligne listview

    bon c'est pas top , mais cela fonctionne .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. VB6 - Remplissage d'une listview avec colonne
    Par megamario dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 22/02/2013, 12h18
  2. [XL-2007] probleme de remplissage d'une listview
    Par chris09300 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/11/2011, 18h39
  3. Réponses: 2
    Dernier message: 18/10/2011, 15h57
  4. Problème remplissage hauteur avec une ListView et style des cellules
    Par Takumi dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 20/07/2010, 12h42
  5. vb.net : remplissage de word via une listview !
    Par Tartuffe245 dans le forum VB.NET
    Réponses: 1
    Dernier message: 03/03/2008, 16h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo