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 :

problème listviews vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 21
    Par défaut problème listviews vba
    bonjour,
    j'ai bien pris connaissances de cette page là : http://silkyroad.developpez.com/VBA/ListView/
    et sur mon pc (XP avec MO basique 2003) il y a plein de choses qui ne marche pas, tel que "listsubitems" ou les "with"

    En fait voilà, je m'explique, j'ai 2 colonnes d'un tableau excel, et je voudrais les mettre dans une listview.
    voici mon code :

    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
     
     
    Private Sub UserForm_Initialize()
     
    Dim debut_col As Integer, ligne As Integer, fin_col As Integer, i As Integer, entete1 As String, entete2 As String
     
        'recherche de la fin de la colonne 1
        debut_col = 2
        ligne = debut_col
        While Worksheets("Feuil1").Cells(ligne, 1) <> ""
            ligne = ligne + 1
        Wend
        fin_col = ligne - 1
     
        entete1 = Worksheets("Feuil1").Cells(1, 1)
        entete2 = Worksheets("Feuil1").Cells(1, 2)
     
        'Le première ligne des colonne A et B contiennent les entetes
        ListView1.ColumnHeaders.Clear
        ListView1.ColumnHeaders.Add , , entete1, 70
        ListView1.ColumnHeaders.Add 1, , entete2, 70
     
        'Les autres lignes contiennent les données
        For i = debut_col To fin_col
            donnee1 = Worksheets("Feuil1").Cells(i, 1)
            donnee2 = Worksheets("Feuil1").Cells(i, 2)
            ListView1.ListItems.Add i, , donnee1
            ListView1.ListItems.Add i, , donnee2
        Next i
     
    End Sub
    Ca bloque au niveau de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListView1.ListItems.Add i, , donnee1
    . Ca me met une erreur d'éxecution 35600 qui me dit " Index out of bounds".
    Quelqu'un a-t-il une idée pour m'aider? (car là c'est vraiment la panne sèche :/)
    Je vous en remercie d'avance.
    Beralienne

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 21
    Par défaut
    Merci de ta réponse.
    j'ai essayé ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListView1.ListItems(i).Add , , donnee1
    et ça me mets une erreur de compilation : Membre de méthode ou de données introuvable
    Alors je ne comprend pas où est l'erreur.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 17
    Par défaut
    Salut,

    La première colonne du Listview doit être remplie avec la methode ListItems.Add.

    Pour les colonnes suivantes on utilise la méthode ListItems(i).ListSubItems.Add

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    With Listview1
          .ListItems.Add , , Donnée1DeLaPremièreColonne 'on ajoute une ligne au Listview
          .ListItems(i).ListSubItems.Add , , Donnée2 'on rempli la colonne 2
          .ListItems(i).ListSubItems.Add , , Donnée2 'on rempli la colonne 3 ...
    End With
    Je l'utilise souvent, je pense que c'est ce qui manque à ton code.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 21
    Par défaut
    Merci de m'aider, mais désolé, j'insiste

    Donc j'ai testé ton code :
    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
    Private Sub UserForm_Initialize()
     
    Dim debut_col As Integer, ligne As Integer, fin_col As Integer, i As Integer, entete1 As String, entete2 As String
    Dim donnee1 As String, donnee2 As String, NoLig As Integer
     
        debut_col = 2
        ligne = debut_col
        While Worksheets("Feuil1").Cells(ligne, 1) <> ""
            ligne = ligne + 1
        Wend
     
        fin_col = ligne - 1
        entete1 = Worksheets("Feuil1").Cells(1, 1)
        entete2 = Worksheets("Feuil1").Cells(1, 2)
        'Les données sont dans la Feuil2.
        'La premiere ligne, de la colonne A à J contient les entêtes.
        ListView1.ColumnHeaders.Clear
        ListView1.ColumnHeaders.Add , , entete1, 70
        ListView1.ColumnHeaders.Add 1, , entete2, 70
     
        NoLig = 0
        For i = 2 To fin_col 'N° de lignes de ta feuille de calculs
            NoLig = NoLig + 1   'N° de lignes de ta listview
            ListView1.ListItems(NoLig).Add , , Worksheets("Feuil1").Cells(i, 1)
            ListView1.ListItems(NoLig).Add , , Worksheets("Feuil1").Cells(i, 2)
        Next
     
    End Sub
    Mais ça me mets toujours la même erreur au niveau du add de la boucle for.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 21
    Par défaut
    Merci Fabal36, mais jsutement le listsubitems ne s'affiche pas dans la liste à choisir quand on met le "." après "listitems
    Donc je n'ai pas pu le mettre.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 21
    Par défaut
    bon ça marche comme ça :
    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
    Private Sub UserForm_Initialize()
     
    Dim debut_col As Integer, ligne As Integer, fin_col As Integer, i As Integer, entete1 As String, entete2 As String
    Dim donnee1 As String, donnee2 As String, NoLig As Integer
     
        debut_col = 2
        ligne = debut_col
        While Worksheets("Feuil1").Cells(ligne, 1) <> ""
            ligne = ligne + 1
        Wend
     
        fin_col = ligne - 1
        entete1 = Worksheets("Feuil1").Cells(1, 1)
        entete2 = Worksheets("Feuil1").Cells(1, 2)
        'La première ligne des colonnes A et B sont les entètes
        ListView1.ColumnHeaders.Clear
        ListView1.ColumnHeaders.Add , , entete1, 70
        ListView1.ColumnHeaders.Add 1, , entete2, 70
     
        NoLig = 0
        For i = 2 To fin_col 'N° de lignes de ta feuille de calculs
            NoLig = NoLig + 1   'N° de lignes de ta listview
            ListView1.ListItems.Add NoLig, , Worksheets("Feuil1").Cells(i, 1)
            ListView1.ListItems.Add NoLig, , Worksheets("Feuil1").Cells(i, 2)
        Next
     
    'Spécifie l'affichage en mode "Détails"
        ListView1.View = lvwReport
     
    End Sub
    seulement un autre problème se pose
    les données de la colonne A et B s'affiche dans la première colonne, et en plus ceux sont les données de la colonne B avant celles de la colonne A qui s'affiche.
    Vous avez une solution?
    Merci d'avance

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 21
    Par défaut
    Bien sur que j'ai testé vos solutions avant et je t'ai meme répondu comme quoi ça NE MARCHAIT PAS, et c'est pour cette raison que j'ai testé autrement.

Discussions similaires

  1. Problème EXCEL VBA
    Par olivierm34 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/03/2007, 23h52
  2. [VB.NET] Problème ListView avec checkbox
    Par elkidos dans le forum Windows Forms
    Réponses: 1
    Dernier message: 15/02/2007, 15h27
  3. Problème valeurs[VBA]
    Par Yanmeunier dans le forum Access
    Réponses: 1
    Dernier message: 18/05/2006, 15h17
  4. Problème de VBA de passage de 2000 à 2002
    Par Oberown dans le forum Access
    Réponses: 9
    Dernier message: 10/05/2006, 14h51
  5. problème avec VBA
    Par Delph dans le forum Langage
    Réponses: 2
    Dernier message: 19/08/2002, 13h15

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