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 dans une listview


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
    Septembre 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 32
    Par défaut Tableau dans une listview
    Bonjour,

    Je voudrais afficher un tableau dans une case de listview.
    Le tableau est une concaténation de valeur de 4 colonnes (avec à la fin un retour à la ligne)
    Exemple :
    ValA1/ValB1/ValC1/ValD1
    ValA2/ValB2/ValC2/ValD2
    ValA3/ValB3/ValC3/ValD3 ...

    Mais dans ma listview j'obtiens :
    ValA1/ValB1/ValC1/ValD1"carré"ValA2/ValB2/ValC2/ValD2"carré"ValA3/ValB3/ValC3/ValD3

    "carré" : carré représentant un chr(10) ou un chr(13)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                    ValeurConcateneA = ValeurConcateneA & Chr(10)
                End If
     
            Next k
            UserForm5.ListView1.ListItems(i).ListSubItems.Add , , ValeurConcateneA

  2. #2
    Membre expérimenté
    Inscrit en
    Février 2008
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 208
    Par défaut
    bonjour

    La première donnée du tableau est en A1.
    Essaye ceci :
    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
    Private Sub UserForm_Activate()
        Dim Tableau, j&, y&
     
        Range("A1").Select
        Selection.CurrentRegion.Select
        'Récupération des données
        Tableau = Selection.Value
     
        ' Sélection du mode détaillé
        Me.ListView1.View = lvwReport
        ' Création des colonnes
        Me.ListView1.ColumnHeaders.Add 1, , "Colonne 1"
        Me.ListView1.ColumnHeaders.Add 2, , "Colonne 2"
        Me.ListView1.ColumnHeaders.Add 3, , "Colonne 3"
        Me.ListView1.ColumnHeaders.Add 4, , "Colonne 4"
     
        'Ecriture données en colonne 1
        For y = UBound(Tableau, 1) To LBound(Tableau, 1) Step -1
            Me.ListView1.ListItems.Add 1, , Tableau(y, 1)
            Me.ListView1.ListItems(1).SubItems(1) = Tableau(y, 2)
            Me.ListView1.ListItems(1).SubItems(2) = Tableau(y, 3)
            Me.ListView1.ListItems(1).SubItems(3) = Tableau(y, 4)
        Next y
    End Sub
    à plus

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 32
    Par défaut
    Merci pour ta réponse, mais j'ai du mal m'exprimer !!!

    Je voudrais afficher dans une case de ma listview mes éléments sous forme de tableau

    C'est pour cela que je les "concatene", mais c'est le saut de ligne que je n'arrive pas à réaliser (voir pièce jointe)


    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
     
    Sub ACT_AfficheList01_Userform5()
    Dim i, j, k, l As Integer
    Dim ValeurConcateneA As String
    Dim Index_nbrColonne As Integer
    Dim Index_nbrLigne As Integer
    Dim Nbr_Car As Integer
     
        ValeurConcateneA = ""
        CompteurACT_AfficheList01_Userform5 = CompteurACT_AfficheList01_Userform5 + 1
     
        With UserForm5.ListView1
            .ListItems.Clear
            .Sorted = False
        End With
     
        Index_Colonne_BdD = 40
     
        Index_Ligne_ListView1_UserForm5 = 2
        i = 1
        Do Until IsEmpty(Sheets("TempListView1").Cells(Index_Ligne_ListView1_UserForm5, 1))
            'Info - ID
            UserForm5.ListView1.ListItems.Add , , Sheets("TempListView1").Cells(Index_Ligne_ListView1_UserForm5, 1)
     
            'Info - Paramètre spécifié
            Index_Colonne_BdD = 40
            UserForm5.ListView1.ListItems(i).ListSubItems.Add , , Sheets("TempListView1").Cells(Index_Ligne_ListView1_UserForm5, Index_Colonne_BdD)
     
            'Info - Label/Unité/Signe/Valeurs
            Index_Colonne_BdD = 48
            Index_nbrColonne = Sheets("TempListView1").Cells(Index_Ligne_ListView1_UserForm5, 46)
            Index_nbrLigne = Sheets("TempListView1").Cells(Index_Ligne_ListView1_UserForm5, 47)
            For k = 1 To Index_nbrColonne
                For l = 1 To Index_nbrLigne
                    If Sheets("TempListView1").Cells(Index_Ligne_ListView1_UserForm5, Index_Colonne_BdD) = "" Then
                    Else
                        ValeurConcateneA = ValeurConcateneA & Sheets("TempListView1").Cells(Index_Ligne_ListView1_UserForm5, Index_Colonne_BdD) & "/"
                        Index_Colonne_BdD = Index_Colonne_BdD + 1
                    End If
                Next l
                Nbr_Car = Len(ValeurConcateneA)
                Nbr_Car = Nbr_Car - 1
                ValeurConcateneA = Left(ValeurConcateneA, Nbr_Car)
                If k = Index_nbrColonne Then
                    'Pas d'action
                Else
                    ValeurConcateneA = ValeurConcateneA & Chr(13)
                End If
     
            Next k
            UserForm5.ListView1.ListItems(i).ListSubItems.Add , , ValeurConcateneA
     
            'Changement couleur
            UserForm5.ListView1.ListItems(i).ForeColor = RGB(0, 0, 255)
            For j = 1 To UserForm5.ListView1.ListItems(1).ListSubItems.Count
                UserForm5.ListView1.ListItems(i).ListSubItems(j).ForeColor = RGB(0, 0, 255)
            Next j
     
            i = i + 1
            Index_Ligne_ListView1_UserForm5 = Index_Ligne_ListView1_UserForm5 + 1
            ValeurConcateneA = ""
        Loop
    End Sub
    Images attachées Images attachées  

  4. #4
    Membre expérimenté
    Inscrit en
    Février 2008
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 208
    Par défaut
    bonjour

    que penses-tu de cet exemple ?
    Est-ce qu'il répond à ton problème ?

    à plus
    Fichiers attachés Fichiers attachés

  5. #5
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour à tous,

    Ce que cherche à faire calvados n'est à mon avis pas réalisable, une ligne d'une ListView ou d'une ListBox n'accepte pas le retour à la ligne (multiligne dans une ligne...).
    .

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 32
    Par défaut
    Je viens d'analyser ce que le Pierre ma envoyer, mais cela ne corresponr pas à mon besoin !!!!

    Ci-joint une deuxieme image réalisé avec PhotoShop (c'est plus facile)

    Suite au message de "fring", ce n'est peut-être pas réalisable
    Images attachées Images attachées  

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

Discussions similaires

  1. Afficher un Hint dans une ListView
    Par Larion dans le forum C++Builder
    Réponses: 13
    Dernier message: 13/03/2005, 13h45
  2. [VB.NET] Objet .Tag dans une ListView
    Par Lois dans le forum Windows Forms
    Réponses: 7
    Dernier message: 12/10/2004, 16h35
  3. Tableau dans une interface idl
    Par Polochon2001 dans le forum CORBA
    Réponses: 2
    Dernier message: 14/05/2004, 09h44
  4. [VB6] Supprimer un enregistrement dans une ListView ??
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/11/2002, 09h37
  5. [VB6]Passage d'un tableau dans une DLL écrite en delphi
    Par flash dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 20/09/2002, 10h15

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