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 :

Remplir une listview boucle [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de pastis.vi
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Novembre 2008
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2008
    Messages : 251
    Par défaut Remplir une listview boucle
    Bonjour à tous !

    J'ai un petit problème, je tente de récupérer des données brutes depuis un fichier excel vers une userform dans laquelle je place une listview pour y afficher les données du fichier excel.
    Pour cela j'ai fais le code suivant :
    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
    20
    21
    22
    23
    24
        With Trouver
            With .ColumnHeaders
                .Clear
                .Add , , "Index", 20
                .Add , , "Date", 30
                .Add , , "Ligne", 40
                .Add , , "N°Affaire", 50
                .Add , , "N°OF", 50
                .Add , , "Type 1", 40
                .Add , , "Type 2", 40
                .Add , , "Description du défaut", 100
                .Add , , "Impact", 50
                .Add , , "TR heures", 20
                .Add , , "TR minutes", 30
            End With
            .Gridlines = True
            .FullRowSelect = True
            .HideColumnHeaders = False
            .LabelEdit = 1
     
        End With
        For Each cell In Sheets("bdd").Range("B1", [N65000].End(xlUp)).SpecialCells(xlCellTypeVisible)
            Trouver.ListItems.Add.Text = cell.Value
        Next cell
    Je ne comprends pas bien pourquoi mes données se remplissent uniquement dans la première colonne de ma listview.
    J'ai tenté d'autres moyens du style (avec b ma colonne à 1 et a ma cellule à 1 et un boucle qui incrémente):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Trouver.ListItems(b).ListSubItems.Add(a).Text = cell.Value
    Mais ça ne fonctionne toujours pas, j'ai un message d'erreur "Index out of bounds".
    Auriez-vous une idée comment remplir ma listview svp ?

    Merci
    Pastis.vi

  2. #2
    Membre éclairé Avatar de pastis.vi
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Novembre 2008
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2008
    Messages : 251
    Par défaut
    Okay bon bah j'ai trouvé la solution tout seul, voici le résultat :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
        If Sheets("bdd").Range("A1").SpecialCells(xlCellTypeLastCell).Row = 1 Then
            MsgBox "Il n'y a aucune donnée à afficher"
        Else
            With Trouver
                With .ColumnHeaders
                    .Clear
                    .Add , , "Index", 30
                    .Add , , "Date", 55
                    .Add , , "Ligne", 35
                    .Add , , "Controleur", 40
                    .Add , , "N°Affaire", 60
                    .Add , , "N°OF", 70
                    .Add , , "Etape Contrôle", 65
                    .Add , , "Origine", 80
                    .Add , , "Type 1", 70
                    .Add , , "Type 2", 130
                    .Add , , "Description du défaut", 200
                    .Add , , "Impact", 50
                    .Add , , "TR heures", 60
                    .Add , , "TR minutes", 60
                End With
                .Gridlines = True
                .FullRowSelect = True
                .HideColumnHeaders = False
                .LabelEdit = 1
            End With
            Trouver.ListItems.Clear
            'On rempli la listeview appelée "Trouver"
            For Each cell In Sheets("bdd").Range("A2", [A65000].End(xlUp)).SpecialCells(xlCellTypeVisible)
                Trouver.ListItems.Add.Text = cell.Value
            Next cell
            i = 1
            a = 0
            For Each cell In Sheets("bdd").Range("B2", [N65000].End(xlUp)).SpecialCells(xlCellTypeVisible)
                If a = 13 Then 'ce a=13 je l'ai trouvé à taton, en fait il faut que lorsqu'on arrive en fin de la première ligne, qu'il remplisse la ligne suivant, d'où ma variable a et l'incrémentation de i qui correspond à la ligne dans la listview
                    i = i + 1
                    a = 0
                End If
                Trouver.ListItems(i).ListSubItems.Add.Text = cell.Value
                a = a + 1
            Next cell
            Trouver.ListItems(1).Selected = False
            Set Trouver.SelectedItem = Nothing
        End If
    Il faut, en fait, remplir la colonne 1 et ensuite remplir le reste.
    En espérant que cela serve à quelqu'un !

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

Discussions similaires

  1. Comment remplir une ListView?
    Par melleb dans le forum C#
    Réponses: 1
    Dernier message: 16/05/2007, 17h26
  2. Remplir une ListView avec le contenu d'une requête
    Par callo dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 19/10/2006, 08h44
  3. Débutant : remplir une listview
    Par Alouka dans le forum MFC
    Réponses: 1
    Dernier message: 11/10/2006, 12h11
  4. [VBA-Excel]Problème pour remplir une listview
    Par Le Djé dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/01/2006, 16h27
  5. Remplir une ListView avec une BD
    Par manikou dans le forum MFC
    Réponses: 1
    Dernier message: 17/05/2005, 09h48

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