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
| Private Sub ComboBox1_Change()
'On met a jour la liste
MaJList
End Sub
Private Sub userform_activate()
Application.ScreenUpdating = False
Sheets("Massage").Select
Application.DisplayFullScreen = True
'On selectionne la 1er entré de la combobox "Tous les mois"
ComboBox1.ListIndex = 0 'La liste est mise a jour (execution de ComboBox1_Change())
Application.ScreenUpdating = True
End Sub
Sub MaJList()
Application.ScreenUpdating = False
'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 ShMassage As Worksheet
'On pointe sur la feuille Barbecue
Set ShMassage = ThisWorkbook.Sheets("Massage")
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 :
'Mais tu doit avoir la propriété View à lvwReport
ListView9.ColumnHeaders.Add , , "Mois", ListView9.Width * 0.08, lvwColumnLeft
ListView9.ColumnHeaders.Add , , "Nom", ListView9.Width * 0.15, 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.25, lvwColumnLeft
ListView9.ColumnHeaders.Add , , "Réglement", ListView9.Width * 0.11, 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
With Me.ListView9
.ListItems.Clear
For Each V In ShMassage.Range("A4:A" & ShMassage.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, 8))
End If
Next V
End With
'On place Total dans le TExtbox1
TextBox1.Text = CStr(Total)
Application.ScreenUpdating = True
End Sub |