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
| Sub MaJList()
'il faut que tu supprimes ControleSource du TextBox1 dans les propriétés
Dim Total As Double
'Dans les propriété de ta ComboBox, met Style à fmStyleDropDownList, sa interdit à l'utilisateur de pouvoir taper n'importequoi
Dim ShBarbeuc As Worksheet
'On pointe sur la feuille Barbecue
Set ShBarbeuc = ThisWorkbook.Sheets("Barbecue")
'Suppression des titres de colonnes
ListView1.ColumnHeaders.Clear
'Alimentation des titres de colonne :
'Mais tu doit avoir la propriété View à lvwReport
ListView1.ColumnHeaders.Add , , "Mois", ListView1.Width * 0.1, lvwColumnLeft
ListView1.ColumnHeaders.Add , , "Nom", ListView1.Width * 0.22, lvwColumnLeft
ListView1.ColumnHeaders.Add , , "Nº MobilHome", ListView1.Width * 0.15, lvwColumnLeft
ListView1.ColumnHeaders.Add , , "Duree", ListView1.Width * 0.1, lvwColumnLeft
ListView1.ColumnHeaders.Add , , "Reglement", ListView1.Width * 0.12, lvwColumnLeft
ListView1.ColumnHeaders.Add , , "Prix Location", ListView1.Width * 0.13, lvwColumnLeft
ListView1.ColumnHeaders.Add , , "Total", ListView1.Width * 0.08, lvwColumnRight
ListView1.ColumnHeaders.Add , , "Caution", ListView1.Width * 0.1, lvwColumnCenter
With Me.ListView1
.ListItems.Clear
For Each V In ShBarbeuc.Range("A4:A" & ShBarbeuc.Cells(Rows.Count, "A").End(xlUp).Row)
'Ici on controle que le mois inscrit dans la tableau Excel correspond bien au moi choisi
'Si aucun moi n'a été choisi, on inscrit toutes les données
'On passe les valeur en majuscule Ucase) pour ne pas etre dérangé par les majuscule en début de nom
'Décembre n'est pas égale à décembre
If (UCase(V.Text) = UCase(ComboBox1.Text)) Or (ComboBox1.Text = "Tous les mois") Then
'On ajoute une ligne
With .ListItems.Add(, , V.Text)
.ForeColor = V.Font.Color
For j = 1 To 8
.ListSubItems.Add , , V.Offset(0, j).Text
.ListSubItems(j).ForeColor = V.Offset(0, j).Font.Color
Next j
End With
'On calcul le total
Total = Total + CDbl(V.Offset(0, 6))
End If
Next V
End With
'On place Total dans le TExtbox1
TextBox1.Text = CStr(Total)
Application.ScreenUpdating = True
End Sub |
Partager