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 :

Tableau de listView [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2017
    Messages : 18
    Par défaut
    Salut,

    J'aimerais créer un tableau de listView pour ensuite interagir avec (un peu comme un for each en java)

    J'aimerais que ce morceau de 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
    Dim lv(4) As ListView
        lv(0) = ListView1
        lv(1) = ListView2
        lv(2) = ListView3
        lv(3) = ListView4
        lv(4) = ListView5
     
        For i = 0 To UBound(lv)
            With lv(i)
                .ListItems.Clear
                .ListItems.Add = "TEST"
                .Refresh
                .ColumnHeaders.Add = lvwColumnCenter
                .BackColor = 255
            End With
        Next i
    puisse faire cela :

    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
     'Vide la listview
        ListView1.ListItems.Clear
        'Ajout le mot
        ListView1.ListItems.Add = "RACINE"
        'Actualise
        ListView1.Refresh
        'Cente le text
        ListView1.ColumnHeaders.Add = lvwColumnCenter
     
     
        ListView2.ListItems.Clear
        ListView2.ListItems.Add = "ACHAT"
        ListView2.Refresh
        ListView2.ColumnHeaders.Add = lvwColumnCenter
        'Change la couleur de fond
        ListView2.BackColor = 255
     
        ListView3.ListItems.Clear
        ListView3.ListItems.Add = "AO"
        ListView3.Refresh
        ListView3.ColumnHeaders.Add = lvwColumnCenter
        ListView3.BackColor = 255
     
        ListView5.ListItems.Clear
        ListView5.ListItems.Add = "ETUDE"
        ListView5.Refresh
        ListView5.ColumnHeaders.Add = lvwColumnCenter
        ListView5.BackColor = 255
     
        ListView4.ListItems.Clear
        ListView4.ListItems.Add = "DEVIS"
        ListView4.Refresh
        ListView4.ColumnHeaders.Add = lvwColumnCenter
        ListView4.BackColor = 255
    Pour le moment j'ai une erreur je n'arrive pas à les stocker dans mon tableau.

    Merci d'avance

    Xiirf

  2. #2
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 706
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 706
    Par défaut
    Bonjour,
    Je ne suis pas sûre d'avoir compris ton problème, mais je vais essayer de te proposer quelque chose. Utilise une deuxième liste :
    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
    Dim lv(5) As ListView
        lv(0) = ListView1
        lv(1) = ListView2
        lv(2) = ListView3
        lv(3) = ListView4
        lv(4) = ListView5
    Dim lvName(5) As String
        lvName(0) = "RACINE"
        lvName(1) = "ACHAT"
        lvName(2) = "AO"
        lvName(3) = "ETUDES"
        lvName(4) = "DECIS"
     
        For i = 0 To UBound(lv)
            With lv(i)
                .ListItems.Clear
                .ListItems.Add = lvName(i)
                .Refresh
                .ColumnHeaders.Add = lvwColumnCenter
                .BackColor = 255
            End With
        Next i
    En ce qui concerne le For Each : cela existe aussi en VBA !
    En espérant que ça puisse t'aider.

    PS : http://club.developpez.com/regles/#LIV-H

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2017
    Messages : 18
    Par défaut
    Bonjour,

    Merci de votre réponse.

    Le problème que j'ai actuellement est de stocker les listviews ensemble pour les parcourir. La première partie du code ne fonctionne pas.

    J'ai essayer de mettre les listviews dans un ListObject, un ListItem mais je n'y arrive pas ..

  4. #4
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 706
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 706
    Par défaut
    Tes Listview, ils sont dans un UserForm ? Si c'est le cas, intéresse-toi à l'article sur les boucles dans un UserForm : http://silkyroad.developpez.com/VBA/...UserForm/#LI-B
    En particulier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub CommandButton1_Click()
        Dim i As Integer
        For i = 1 To 5
        Cells(i, 1) = Me.Controls("ListView" & i)
        Next i
    End Sub
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim Ctrl As Control
    For Each Ctrl In Me.Controls
        If TypeOf Ctrl Is MSForms.TextBox Then MsgBox Ctrl.Object.Value
    Next Ctrl
    Est-ce que tu vois comment adapter ?

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2017
    Messages : 18
    Par défaut
    Euh non pas trop ..

    Actuellement j'ai mes ListView directement sur ma première feuille et après j’interagis avec leur nom dans mes macros.

  6. #6
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 706
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 706
    Par défaut
    Ok, donc tes ListView ne sont pas dans un UserForm. Tu peux essayer d'utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test()
        Dim sh As Shape
        For Each sh In Sheets(1).Shapes
            If sh.Name Like "ListView*" Then
                '...
            End If
        Next sh
    End Sub

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

Discussions similaires

  1. [AC-2007] Comment puis-je enregistrer des données dans listview en tableau
    Par biancaioana dans le forum VBA Access
    Réponses: 7
    Dernier message: 21/08/2012, 21h16
  2. Remplir une listview à partir d'un tableau Array
    Par Gecoo dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 29/04/2010, 17h05
  3. binding ListView au contenu d'un tableau
    Par bellak dans le forum Windows Presentation Foundation
    Réponses: 18
    Dernier message: 21/08/2009, 01h38
  4. Tableau dans une listview
    Par ftcalvados dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 01/10/2008, 14h24
  5. filtre d'un tableau dans listview
    Par pipo159 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 08/04/2008, 19h41

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