Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/11/2011, 19h54   #1
Membre habitué
 
Homme christian
retraite
Inscription : avril 2010
Messages : 310
Détails du profil
Informations personnelles :
Nom : Homme christian
Âge : 56
Localisation : Espagne

Informations professionnelles :
Activité : retraite
Secteur : Industrie

Informations forums :
Inscription : avril 2010
Messages : 310
Points : 109
Points : 109
Par défaut total dans listview

Bonsoir
je souhaiterais avoir un texbox m'affichant le total de ma listview:

je m'explique, dans la listview j'ai des donnees , Mois, Nom,....., s/Total.
lorsque je fait un tri sur un mois, je souhaiterais avoir le total de ce qui est dans la colonne s/total affiche dans la listview.
cris

voici mon code:
Code :
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
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
 
'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 "Fevrier"
        .AddItem "Mars"
        .AddItem "Avril"
        .AddItem "Mai"
        .AddItem "Juin"
        .AddItem "Juillet"
        .AddItem "Aout"
        .AddItem "Septembre"
        .AddItem "Octobre"
        .AddItem "Novembre"
        .AddItem "Decembre"
        '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_change() '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
chris09300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2011, 21h53   #2
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 692
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 692
Points : 1 443
Points : 1 443
Re, Re bonsoir,

Tu peux intégrer le calcul du total dans la procédure de remplissage de ta ListView.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub Remplissage(mois)
Dim Total As Double
    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
                Total = Total + V.Offset(0, 8)
            End If
        Next V
        TextBox2.Value = Total
    End With
End Sub
Cordialement.
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/11/2011, 14h40   #3
Membre habitué
 
Homme christian
retraite
Inscription : avril 2010
Messages : 310
Détails du profil
Informations personnelles :
Nom : Homme christian
Âge : 56
Localisation : Espagne

Informations professionnelles :
Activité : retraite
Secteur : Industrie

Informations forums :
Inscription : avril 2010
Messages : 310
Points : 109
Points : 109
je viens de voir ta reponse.
super ca fonctionne tres bien.
merci beaucoup
cris
chris09300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h30.


 
 
 
 
Partenaires

Hébergement Web