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 :

probleme avec listview [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    retraite
    Inscrit en
    Avril 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Espagne

    Informations professionnelles :
    Activité : retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2010
    Messages : 325
    Par défaut probleme avec listview
    Bonjour a tous
    J'ai dans mon userform une listview. Avec en 1 colonne des mois et des valeur dans les autres colonnes.
    Je souhaiterais mettre un combobox qui me listerais tout les mois de l'annee, et quand j'affiche le mois desire, que dans ma listview, s'affiche que les resulta du mois choisis.
    et un autre bouton, qui me reinitialiserais ma liste complete.
    merci
    cris

    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
    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
     
    Private Sub CommandButton1_Click()
    Me.Hide
    Sheets("Massage").Select
    End Sub
    Private Sub Massage_Click()
     Load Resa_Massage
     Resa_Massage.Show
     Unload UserForm8
     UserForm8.Show
     Sheets("Menu").Select
    End Sub
    Private Sub Retour_Menu_Click()
     Sheets("Menu").Select
     Unload UserForm8
     End Sub
    Private Sub TextBox1_Change()
    Me.TextBox1 = Sheets("Massage").Range("J2")
    End Sub
    Private Sub userform_Activate()
     
     Sheets("Massage").Select
     Application.DisplayFullScreen = True
     
     TextBox1.Value = Sheets("Massage").Range("J2").Value
     
    With Resa_Massage
    .StartUpPosition = 3
    .Width = Application.Width
    .Height = Application.Height
    .Left = 0
    .Top = 0
    End With
     
    'Suppression des titres de colonnes
    ListView9.ColumnHeaders.Clear
     
    'Alimentation des titres de colonne :
     
    ListView9.ColumnHeaders.Add , , "Mois", ListView9.Width * 0.1, lvwColumnLeft
    ListView9.ColumnHeaders.Add , , "Nom", ListView9.Width * 0.17, lvwColumnLeft
    ListView9.ColumnHeaders.Add , , "Nº MH", ListView9.Width * 0.06, lvwColumnCenter
    ListView9.ColumnHeaders.Add , , "Date", ListView9.Width * 0.1, lvwColumnCenter
    ListView9.ColumnHeaders.Add , , "Type de Massage", ListView9.Width * 0.2, lvwColumnCenter
    ListView9.ColumnHeaders.Add , , "Réglement", ListView9.Width * 0.12, lvwColumnCenter
    ListView9.ColumnHeaders.Add , , "Durée", ListView9.Width * 0.1, lvwColumnCenter
    ListView9.ColumnHeaders.Add , , "Prix", ListView9.Width * 0.06, lvwColumnCenter
    ListView9.ColumnHeaders.Add , , "Total", ListView9.Width * 0.09, lvwColumnCenter
     
    'on remplit la listview
     
    With Me.ListView9
    .ListItems.Clear
        For Each V In Range("a4:a" & Range("a65536").End(xlUp).Row)
            x = x + 1
            .ListItems.Add , , V.Text
            .ListItems(x).ForeColor = V.Font.Color
     
            For j = 1 To 8
                .ListItems(x).ListSubItems.Add , , V.Offset(0, j).Text
                .ListItems(x).ListSubItems(j).ForeColor = V.Offset(0, j).Font.Color
     
            Next j
    Next V
    End With
     
    End Sub

  2. #2
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour chris09300,

    Voici un exemple qui utilise un contrôle ComboBox pour afficher les mois de Janvier à Décembre.
    Chaque fois que tu cliques sur un choix de la liste, le mois choisi est sélectionné.
    Si tu Double-cliques sur cette sélection, la ListView9 est mise à jour.
    Pour réinitialiser la liste, tu sélectionnes « Tous les mois ».

    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
    Private Sub UserForm_Initialize()
        With ListView9
            With .ColumnHeaders
                'Suppression des anciens entêtes
                .Clear
                'Alimentation des titres de colonne :
                .Add , , "Mois", ListView9.Width * 0.1, lvwColumnLeft
                .Add , , "Nom", ListView9.Width * 0.17, lvwColumnLeft
                .Add , , "Nº MH", ListView9.Width * 0.06, lvwColumnCenter
                .Add , , "Date", ListView9.Width * 0.1, lvwColumnCenter
                .Add , , "Type de Massage", ListView9.Width * 0.2, lvwColumnCenter
                .Add , , "Réglement", ListView9.Width * 0.12, lvwColumnCenter
                .Add , , "Durée", ListView9.Width * 0.1, lvwColumnCenter
                .Add , , "Prix", ListView9.Width * 0.06, lvwColumnCenter
                .Add , , "Total", ListView9.Width * 0.09, lvwColumnCenter
            End With
            'Remplissage des colonnes suivant liste des mois sélectionnés
            Remplissage "Tous les mois"
            'Spécifie l'affichage en mode "Détails"
            ListView9.View = lvwReport
        End With
        '--------------------------------------------------
        'Alimentation de la ComboBox
        With ComboBox1
            .AddItem "Tous les mois"
            .AddItem "Janvier"
            .AddItem "Février"
            .AddItem "Mars"
            .AddItem "Avril"
            .AddItem "Mai"
            .AddItem "Juin"
            .AddItem "Juillet"
            .AddItem "Août"
            .AddItem "Septembre"
            .AddItem "Octobre"
            .AddItem "Novembre"
            .AddItem "Décembre"
            'Affectation de la valeur 0 par défaut lors de l'affichage du ComboBox (Tous les mois)
            .ListIndex = 0
        End With
    End Sub
    Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
        'Procédure de remplissage des colonnes suivant le paramètre "mois" choisi
        Remplissage ComboBox1.Value
    End Sub
    Sub Remplissage(mois)
        With ListView9
            'Remplissage des colonnes
            .ListItems.Clear
            For Each V In Range("A4:A" & Range("A65536").End(xlUp).Row)
                If V.Value = mois Or mois = "Tous les mois" Then
                    x = x + 1
                    .ListItems.Add , , V.Text
                    .ListItems(x).ForeColor = V.Font.Color
                    For j = 1 To 8
                        .ListItems(x).ListSubItems.Add , , V.Offset(0, j).Text
                        .ListItems(x).ListSubItems(j).ForeColor = V.Offset(0, j).Font.Color
                    Next j
                End If
            Next V
        End With
    End Sub
    Cordialement.

  3. #3
    Membre éclairé
    Homme Profil pro
    retraite
    Inscrit en
    Avril 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Espagne

    Informations professionnelles :
    Activité : retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2010
    Messages : 325
    Par défaut
    Bonsoir
    J'ai remplacer mon code par le tien,et cela bloque au niveau de:

    .AddItem "Tous les mois"

    J'ai pourtant creer un combobox avec comme row source : Renseignements!F1:F13, ou se trouve tous les mois.
    cris

  4. #4
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonsoir,

    Tu n'as pas besoin d'utiliser la propriété Rowsource puisque la ComboBox est alimentée par les lignes 25 à 37.
    Prends le temps de lire et de comprendre le code, sinon ...
    En particulier, tu as dû remarquer que je n'ai pas repris les parties de ton code qui ne sont pas utiles pour répondre à ta question sur l'ajout d'une ComboBox.
    Si tu fais un simple copier-coller tu risques de perdre quelques fonctionnalités.

    Cordialement.

  5. #5
    Membre éclairé
    Homme Profil pro
    retraite
    Inscrit en
    Avril 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Espagne

    Informations professionnelles :
    Activité : retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2010
    Messages : 325
    Par défaut
    ca avance un peu
    j'ai bien dans le combobox tout les mois.
    quand je met sur tout les mois, et dblclick cela affiche bien tous les mois, mais des que je change, je n'est plus rien dans la listview.
    voici le 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
    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
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    Private Sub CommandButton1_Click()
    Me.Hide
    Sheets("Massage").Select
    End Sub
    Private Sub Massage_Click()
     Load Resa_Massage
     Resa_Massage.Show
     Unload UserForm8
     UserForm8.Show
     Sheets("Menu").Select
    End Sub
    Private Sub Retour_Menu_Click()
     Sheets("Menu").Select
     Unload UserForm8
     End Sub
    Private Sub TextBox1_Change()
    Me.TextBox1 = Sheets("Massage").Range("J2")
    End Sub
     
    Private Sub ComboBox1_Click()
     mois_choisi = ComboBox1.Text
    End Sub
     
    Private Sub userform_Activate()
     
     Sheets("Massage").Select
     Application.DisplayFullScreen = True
     
     TextBox1.Value = Sheets("Massage").Range("J2").Value
     
    With Resa_Massage
    .StartUpPosition = 3
    .Width = Application.Width
    .Height = Application.Height
    .Left = 0
    .Top = 0
    End With
     
    'Suppression des titres de colonnes
    ListView9.ColumnHeaders.Clear
     
     
     
    'Alimentation des titres de colonne :
     
    ListView9.ColumnHeaders.Add , , "Mois", ListView9.Width * 0.1, lvwColumnLeft
    ListView9.ColumnHeaders.Add , , "Nom", ListView9.Width * 0.17, lvwColumnLeft
    ListView9.ColumnHeaders.Add , , "Nº MH", ListView9.Width * 0.06, lvwColumnCenter
    ListView9.ColumnHeaders.Add , , "Date", ListView9.Width * 0.1, lvwColumnCenter
    ListView9.ColumnHeaders.Add , , "Type de Massage", ListView9.Width * 0.2, lvwColumnCenter
    ListView9.ColumnHeaders.Add , , "Réglement", ListView9.Width * 0.12, lvwColumnCenter
    ListView9.ColumnHeaders.Add , , "Durée", ListView9.Width * 0.1, lvwColumnCenter
    ListView9.ColumnHeaders.Add , , "Prix", ListView9.Width * 0.06, lvwColumnCenter
    ListView9.ColumnHeaders.Add , , "Total", ListView9.Width * 0.09, lvwColumnCenter
     
    'on remplit la listview
     
    'With Me.ListView9
    '.ListItems.Clear
     
     
    '   For Each V In Range("a4:a" & Range("a65536").End(xlUp).Row)
    '        x = x + 1
    '        .ListItems.Add , , V.Text
    '        .ListItems(x).ForeColor = V.Font.Color
    '
    '        For j = 1 To 8
    '            .ListItems(x).ListSubItems.Add , , V.Offset(0, j).Text
    '            .ListItems(x).ListSubItems(j).ForeColor = V.Offset(0, j).Font.Color
    '
     '       Next j
    'Next V
     
    'End With
    'End Sub
     
    'Private Sub UserForm_Initialize()
        With ListView9
            With .ColumnHeaders
                'Suppression des anciens entêtes
                .Clear
                'Alimentation des titres de colonne :
                .Add , , "Mois", ListView9.Width * 0.1, lvwColumnLeft
                .Add , , "Nom", ListView9.Width * 0.17, lvwColumnLeft
                .Add , , "Nº MH", ListView9.Width * 0.06, lvwColumnCenter
                .Add , , "Date", ListView9.Width * 0.1, lvwColumnCenter
                .Add , , "Type de Massage", ListView9.Width * 0.2, lvwColumnCenter
                .Add , , "Réglement", ListView9.Width * 0.12, lvwColumnCenter
                .Add , , "Durée", ListView9.Width * 0.1, lvwColumnCenter
                .Add , , "Prix", ListView9.Width * 0.06, lvwColumnCenter
                .Add , , "Total", ListView9.Width * 0.09, lvwColumnCenter
            End With
            'Remplissage des colonnes suivant liste des mois sélectionnés
            Remplissage "Tous les mois"
            'Spécifie l'affichage en mode "Détails"
            ListView9.View = lvwReport
        End With
        '--------------------------------------------------
        'Alimentation de la ComboBox
        With ComboBox1
            .AddItem "Tous les mois"
            .AddItem "Janvier"
            .AddItem "Février"
            .AddItem "Mars"
            .AddItem "Avril"
            .AddItem "Mai"
            .AddItem "Juin"
            .AddItem "Juillet"
            .AddItem "Août"
            .AddItem "Septembre"
            .AddItem "Octobre"
            .AddItem "Novembre"
            .AddItem "Décembre"
            'Affectation de la valeur 0 par défaut lors de l'affichage du ComboBox (Tous les mois)
            .ListIndex = 0
        End With
    End Sub
    Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
        'Procédure de remplissage des colonnes suivant le paramètre "mois" choisi
        Remplissage ComboBox1.Value
    End Sub
    Sub Remplissage(mois)
        With ListView9
            'Remplissage des colonnes
            .ListItems.Clear
            For Each V In Range("A4:A" & Range("A65536").End(xlUp).Row)
                If V.Value = mois Or mois = "Tous les mois" Then
                    x = x + 1
                    .ListItems.Add , , V.Text
                    .ListItems(x).ForeColor = V.Font.Color
                    For j = 1 To 8
                        .ListItems(x).ListSubItems.Add , , V.Offset(0, j).Text
                        .ListItems(x).ListSubItems(j).ForeColor = V.Offset(0, j).Font.Color
                    Next j
                End If
            Next V
        End With
    End Sub
    cris

  6. #6
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Est-ce que dans ta liste A1:A(x), les mois sont bien notés "Janvier", "Février", etc. ?
    Attention, les chaines de caractères doivent être identiques (orthographe et espaces).

    Cordialement.

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

Discussions similaires

  1. Probleme avec ListView backColor
    Par waelenis dans le forum C#
    Réponses: 2
    Dernier message: 07/08/2012, 10h17
  2. probleme avec Listview
    Par wahidred dans le forum VB.NET
    Réponses: 1
    Dernier message: 17/04/2012, 23h33
  3. Probleme avec Listview
    Par rital77600 dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 21/12/2009, 14h01
  4. probleme avec listview
    Par gaut dans le forum C++
    Réponses: 3
    Dernier message: 09/08/2004, 00h04
  5. [VB6] Problèmes avec ListView
    Par FlopErik dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 12/03/2003, 16h33

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