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 :

[XL 2016] Probleme Listview


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 tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut [XL 2016] Probleme Listview
    Nom : Sans titre.png
Affichages : 337
Taille : 10,2 KoNom : dddd.png
Affichages : 345
Taille : 26,2 KoBonjour,

    Je suis en développement d'un outil avec deux listview, le developpement à débuté en version 2010, puis je viens de passer en version 2016, je me rend compte que des problèmes arrivent avec les listview.

    - Impossibilité de redimensionner ==> réglé par une API
    - Listview inconnue à l'ouverture alors qu'elle est bien ds la feuille avec les bons noms. Au moment de l'ouverture et de l'initialisation il semble que seule deux listviews soient disponibles, c'est Listview41 et listview42 ... inconnues au bataillon, puisque les miennes portent un autre nom.

    J'ai essayé plusieurs écritures :
    - BOARD.OLEObjects("ListeLV").object
    - BOARD.ListeLV

    avec BOARD.ListeLV
    mon message d'erreur est sur les photos :


    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    'Affichage des sources et reports
    Sub ListeSourceAndReport(ByVal MyChoice As String, MyP As String)
        Dim AllRange As Range, AllCol As Range, MyKey
        Dim I As Long, j As Long, MyRange As Range, MyDicoPeriodicity As New Dictionary
        Dim rg As Range, n As Integer, rgStart As Range, k As Long
        Dim TitleTab, MyTab() As String, MyRngListe As Range
        Dim MyBasket(), MyItem As ListItem, MyColor As Long
     
     
        'Dictionnaire des Periodes
        With ThisWorkbook.Worksheets("Param")
            For Each MyRange In .Range(.Range("Périodicité").Offset(1), .Range("Périodicité").End(xlDown))
                If Not MyDicoPeriodicity.Exists(MyRange.Value) Then
                    MyDicoPeriodicity.Add MyRange.Value, MyRange.Offset(, 1).Value
                End If
            Next MyRange
        End With
     
        'la plage avec les noms à copier dans la LV
        With ThisWorkbook.Worksheets("Param_" & MyChoice)
            Set rg = .Range("Start_" & MyChoice)
            Set MyRngListe = .Range(rg, rg.End(xlDown))
            n = .Range(rg, rg.End(xlDown)).Count - 1
        End With
     
        'liste du panier actuel
        With BOARD.OLEObjects("SelectionLV").Object
            .Objects.ColumnHeaders.Clear
            .View = lvwReport
     
            'ajout des titres de colonnes
            .ColumnHeaders.Add , , "Nom"
     
            If .ListItems.Count > 0 Then
                ReDim MyBasket(1 To .ListItems.Count)
                For Each MyItem In .ListItems
                    I = I + 1
                    MyBasket(I) = MyItem
                Next MyItem
            End If
        End With
     
        With BOARD.OLEObjects("ListeLV").Object
            .ColumnHeaders.Clear
            .ListItems.Clear
            .View = lvwReport
     
            'ajout des titres de colonnes
            TitleTab = Array("Nom", "Pér", "MAJ", "Status")
            For I = 0 To UBound(TitleTab)
                .ColumnHeaders.Add , , TitleTab(I)
            Next I
     
            'construire le tableau a remplir pour la LV
            If MyChoice = "Sources" Then
                For I = 0 To n
                    If rg.Offset(I, 3).Value = MyDicoPeriodicity(MyP) Or MyP = "Tous" Then
                        ReDim Preserve MyTab(3, k)
                        MyTab(0, k) = rg.Offset(I, 0).Value
                        MyTab(1, k) = rg.Offset(I, 3).Value
                        MyTab(2, k) = rg.Offset(I, 16).Value
                        MyTab(3, k) = Status(rg.Offset(I, 0).Value, MyChoice)
                        k = k + 1
                    End If
                Next I
            Else
                For I = 0 To n
                    If rg.Offset(I, 1).Value = MyDicoPeriodicity(MyP) Or MyP = "Tous" Then
     
                        ReDim Preserve MyTab(3, k)
                        MyTab(0, k) = rg.Offset(I, 0).Value
                        MyTab(1, k) = rg.Offset(I, 1).Value
                        MyTab(2, k) = rg.Offset(I, 5).Value
                        MyTab(3, k) = Status(rg.Offset(I, 0).Value, MyChoice)
                        k = k + 1
                    End If
                Next I
            End If
     
            If Not IsEmpty_V(MyTab) Then
                'ajout des éléments de la 1re colonne
                For I = 0 To UBound(MyTab, 2)
                    .ListItems.Add , TitleTab(0) & "__" & MyTab(0, I), MyTab(0, I)
     
                    'Code couleur selon dispo/constructibilité
                    If MyTab(3, I) = "KO" Then MyColor = RGB(255, 0, 0) Else MyColor = RGB(50, 205, 50)
                    .ListItems.Item(I + 1).ForeColor = MyColor
     
                    'ajout des éléments des autres colonnes
                    For j = 1 To UBound(MyTab)
                        .ListItems(I + 1).ListSubItems.Add , TitleTab(j) & "__" & MyTab(0, I), MyTab(j, I)
                        .ListItems(I + 1).ListSubItems.Item(j).ForeColor = MyColor
                    Next j
                Next I
     
                'deselectionner premiere ligne
                .ListItems(1).Selected = False
            End If
     
            If .ListItems.Count > 0 Then
                For I = 1 To .ListItems.Count
                    'on check si il est dans le panier
                    If Not IsEmpty_V(MyBasket) Then
                        If IsInTab(BOARD.OLEObjects("ListeLV").ListItems(I), MyBasket) Then BOARD.OLEObjects("ListeLV").ListItems(I).Checked = True
                    End If
                Next I
            End If
        End With
     
        'redimensionnement
        TitleTab = Array(350, 40, 80, 60)
        Call SetWidth(BOARD.OLEObjects("ListeLV").Object, TitleTab)
        Call SetWidth(BOARD.OLEObjects("SelectionLV").Object, TitleTab)
     
    End Sub
    Images attachées Images attachées  

  2. #2
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut
    UP

  3. #3
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut
    Bonjour, je UP mon post car le problème persiste

Discussions similaires

  1. problem listview selectable + with icons
    Par perloutta dans le forum Composants graphiques
    Réponses: 3
    Dernier message: 23/03/2010, 16h27
  2. probleme listview bug
    Par bahrinb dans le forum Windows Forms
    Réponses: 1
    Dernier message: 03/09/2007, 18h59
  3. [debutant] probleme listview
    Par warubi dans le forum VB.NET
    Réponses: 2
    Dernier message: 25/05/2007, 18h33
  4. [debutant] probleme listview
    Par warubi dans le forum VB.NET
    Réponses: 2
    Dernier message: 16/05/2007, 07h19
  5. Probleme listview center
    Par ptitom1381 dans le forum VB.NET
    Réponses: 1
    Dernier message: 18/02/2007, 18h17

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