Dim Autorise As Boolean 'libère ou coince l'accès au contrôle ListView, ne pas déplacer
Dim tablo, i As Integer
'Private Sub CommandButton1_Click()
'Unload Me
'Sheets("Mvts").Select
'UserForm6.Show
'End Sub
Private Sub Label3_Click()
End Sub
Private Sub ListView1_BeforeLabelEdit(Cancel As Integer)
End Sub
Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
Dim lvwLigne As Long, i As Byte
lvwLigne = ListView1.SelectedItem.Index
TextBox1 = ListView1.ListItems(lvwLigne).Text
For i = 1 To ListView1.ColumnHeaders.Count - 1
Controls("TextBox" & i + 1) = ListView1.ListItems(lvwLigne).ListSubItems(i).Text
Next
End Sub
Private Sub UserForm_Initialize()
Dim Vcol As Byte, Colonne(7) As Byte, vC As Range, vLi As Long
Dim data As Object
ThisWorkbook.Sheets("Mvts").Activate
With ListView1
tablo = Range("a3:g" & Range("a65536").End(xlUp).Row)
With .ColumnHeaders
For Vcol = 1 To 1
.Add , , Cells(2, Vcol), Cells(2, Vcol).Width 'Wcol(Vcol - 1)
Next
For Vcol = 2 To 7
.Add , , Cells(2, Vcol), Cells(2, Vcol).Width, lvwColumnCenter
Next
End With
.Gridlines = True
.Font.Size = 15
.Sorted = False
.FullRowSelect = True
.ListItems.Clear
.View = lvwReport
'largeurs
End With
' Wcol = Array(60, 160, 50, 30, 110, 30, 60)
' For Vcol = 0 To 6
' Colonne(Vcol) = Wcol(Vcol)
' Next
Set data = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(tablo)
If Not data.Exists(tablo(i, 5)) Then data.Add tablo(i, 5), tablo(i, 5)
Next i
ComboBox1.List = data.items
Set data = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(tablo)
If Not data.Exists(tablo(i, 1)) Then data.Add tablo(i, 1), tablo(i, 1) 'dates
Next i
ComboBox2.List = data.items
'passage par ListView pour trier
' For Each vC In Sheets("Mvts").Range("D3:D" & [D65000].End(xlUp).Row).SpecialCells(xlCellTypeVisible)
' Set vItem = .ListItems.Add(, , vC)
' Next
' For vLi = 1 To .ListItems.Count
' ComboBox1 = .ListItems(vLi)
' If ComboBox1.ListIndex = -1 Then ComboBox1.AddItem .ListItems(vLi)
' Next
' ComboBox1 = ""
' .ListItems.Clear
' Autorise = True
End Sub
Private Sub ComboBox1_Change()
If ComboBox1 <> "" Then
Dim vItem As ListItem, vLi As Integer
With ListView1
.ListItems.Clear
For i = 1 To UBound(tablo, 1)
If tablo(i, 5) = ComboBox1 Then
Set vItem = .ListItems.Add(, , tablo(i, 1))
For Vcol = 2 To UBound(tablo, 2)
vItem.ListSubItems.Add , , tablo(i, Vcol)
Next
End If
Next
End With
End If
ComboBox1.DropDown
If (ListView1.ListItems.Count <> 0) Then
'If ListView1.ListItems.Count <> 0 Then
ListView1.ListItems(ListView1.ListItems.Count).EnsureVisible
'ListView1.ListItems(ListView1.ListItems.Count).Selected = True
'ListView1.SetFocus
End If
End Sub
Private Sub ComboBox2_Change()
If ComboBox2 <> "" Then
Dim vItem As ListItem, vLi As Integer
With ListView1
.ListItems.Clear
For i = 1 To UBound(tablo, 1)
If tablo(i, 1) = CDate(ComboBox2) Then
Set vItem = .ListItems.Add(, , tablo(i, 1))
For Vcol = 2 To UBound(tablo, 2)
vItem.ListSubItems.Add , , tablo(i, Vcol)
Next
End If
Next
End With
End If
ComboBox2.DropDown
If (ListView1.ListItems.Count <> 0) Then
'If ListView1.ListItems.Count <> 0 Then
ListView1.ListItems(ListView1.ListItems.Count).EnsureVisible
'ListView1.ListItems(ListView1.ListItems.Count).Selected = True
'ListView1.SetFocus
End If
End Sub
Private Sub Modifier_Click()
Dim vItem As ListItem, lvwLigne As Long, i As Byte, x As Long
On Error Resume Next
Set vItem = ListView1.SelectedItem
On Error GoTo 0
If vItem Is Nothing Then
MsgBox "Aucune ligne n'est sélectionnée."
Exit Sub
End If
lvwLigne = ListView1.SelectedItem.Index
'message falcultatif avant modif
If MsgBox("Modifier ?!", vbCritical + vbYesNo) = 6 Then
With ListView1
.ListItems(lvwLigne).Text = TextBox1
For i = 1 To 6
.ListItems(lvwLigne).ListSubItems(i).Text = Controls("TextBox" & i + 1)
Next
End With
x = ListView1.ListItems(lvwLigne).ListSubItems(7).Text
With Sheets("Mvts")
.Cells(x, 1) = CDate(TextBox1)
For i = 2 To 7
.Cells(x, i) = Controls("TextBox" & i)
Next
.Cells(x, 7) = CDate(TextBox7)
End With
End If
End Sub
'Sub EffaceTout() 'effacement éventuel des textbox
'Dim i As Byte
'For i = 1 To 7
' Controls("TextBox" & i) = ""
'Next
'
'End Sub