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 :

VBA Listview [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2009
    Messages : 74
    Par défaut VBA Listview
    Bonjour/soir forum

    Est ce que les listviews fonctionnent en xl2003

    Je n'arrive pas à faire afficher la moindre entête.. et la ligne des noms lorsque je retire les marques de commentaires. J'ai épluché la doc

    J'ai ramassé sur le site, un exemple FiltreListeView.xls dont les fonctionnalités sont celles que je recherche.

    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
    Private Sub UserForm_Initialize()
        Dim i As Long
        '--- code de la ListView1 ---
        With ListView1
            With .ColumnHeaders
               .Clear
               .Add , , "Nom", 100
               .Add , , "Domaine", 100
               .Add , , "Somme", 100
            End With
            .View = lvwReport
            .FullRowSelect = True
            .Gridlines = True
    '                For i = 1 To Sheets("Résultats").Range("A65536").End(xlUp).Row
    '                   .ListItems.Add , , Sheets("Résultats").Cells(i, 18)
    '                   .ListItems(1).ListSubItems.Add , , Sheets("Résultats").Cells(i, 4)
    '                Next
    '        ListView1.ListItems(1).Selected = False '--- désactive la sélection de la première ligne par défaut ---
    '        Set ListView1.SelectedItem = Nothing    '--- désactive la sélection de la première ligne par défaut ---
        End With
    End Sub
    Voilà, une autre longue journée par très lucrative...
    A+
    Bo

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    389
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 389
    Par défaut
    j'utilise le listView avec Excel 2003 sans problème

    Pour l'exemple un code que j'utilise
    par double clic sur un élément du listView j'alimente une feuille de calcul

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    Option Explicit
     
    Private Sub CommandButton1_Click()
        Me.Hide
    End Sub
     
    Private Sub ListView1_DblClick()
     
    'Recherche de l'index de la ligne double cliquée
    Dim indice As Integer, ligneVide As Integer
     
    indice = ListView1.SelectedItem.Index
    ligneVide = 1
     
    'Recherche première lignevide
    While Sheets("listview").Cells(ligneVide, 1) <> ""
        ligneVide = ligneVide + 1
    Wend
     
    'Inscription des valeurs de la ligne double cliquée
    Sheets("listview").Cells(ligneVide, 1) = ListView1.ListItems(indice).Text
    Sheets("listview").Cells(ligneVide, 2) = ListView1.ListItems(indice).ListSubItems(1)
    Sheets("listview").Cells(ligneVide, 3) = Format(ListView1.ListItems(indice).ListSubItems(2), "## ##0.00 €")
     
    End Sub
     
    Private Sub UserForm_Activate()
    Dim ligneArticle As Integer
     
    With ListView1
        With .ColumnHeaders
            .Clear 'Suppression des titres de colonnes
            'Alimentation des titres de colonne :
            'Titre de la colonne  : "Référence",
            'Largeur de la colonne :  ListView1.Width * 0.3,
            'Alignement de la colonne : lvwColumnLeft
            .Add , , "Référence", ListView1.Width * 0.3, lvwColumnLeft
            .Add , , "Désignation", ListView1.Width * 0.5, lvwColumnLeft
            .Add , , "Prix public", ListView1.Width * 0.19, lvwColumnRight
        End With
     
    End With
     
    ligneArticle = 2
     
    ListView1.ListItems.Clear 'Suppression des éléments de la liste
     
    While Sheets("Feuil1").Cells(ligneArticle, 1) <> ""
        With ListView1
            'Alimentation des éléments de la liste
            .ListItems.Add ligneArticle - 1, , Sheets("Feuil1").Cells(ligneArticle, 1)
            .ListItems(ligneArticle - 1).SubItems(1) = Sheets("Feuil1").Cells(ligneArticle, 2)
            .ListItems(ligneArticle - 1).SubItems(2) = Format(Sheets("Feuil1").Cells(ligneArticle, 3), "## ##0.00 €")
            ligneArticle = ligneArticle + 1
        End With
    Wend
     
    End Sub

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2009
    Messages : 74
    Par défaut Listview suite...
    Bonjour JPierreM, forum

    Avant d'aller plus loin, il faut savoir que j'ai copié le listview du userform du fichier downloadé.
    La nuit porte conseil et je me suis souvenue qu'en labview, j'ai déjà eu, par le passé, un pb avec la copie d'un indicateur qui avait perdu ses caractéristiques:
    J'ai récréer un listview from scratch ...
    Hop j'ai des entêtes...voyons ce que ca dit pour le reste et pour le double clic

    Merci!



    A plus
    Bo

  4. #4
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 133
    Par défaut la visibilite des entetes
    se fait par la propriete .HideColumnHeaders = False
    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
    Private Sub UserForm_Initialize()
        Dim i As Long
        '--- code de la ListView1 ---
        With ListView1
            .HideColumnHeaders = False
           With .ColumnHeaders
               .Clear
               .Add , , "Nom", 100
               .Add , , "Domaine", 100
               .Add , , "Somme", 100
            End With
            .View = lvwReport
            .FullRowSelect = True
            .Gridlines = True
        End With
    End Sub
    et bonne continuation

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2009
    Messages : 74
    Par défaut Listview...
    Bonjour Lynx92260, forum,

    je vais ajouter cette ligne...merci

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

Discussions similaires

  1. [XL-2013] Bibliothèque non inscrite VBA LISTVIEW
    Par cedric6468 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 07/01/2015, 10h51
  2. Réponses: 0
    Dernier message: 17/07/2014, 08h45
  3. [VBA] listview centré cellule
    Par toutyx dans le forum VBA Access
    Réponses: 1
    Dernier message: 05/06/2007, 11h11
  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. [VBA] Trier les colonnes d'une listview
    Par alncool dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/09/2005, 14h12

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