| 12
 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
 
 | Private Sub CommandButton1_Click()  'Précédent
Call IncrementListView(Increment:=-1)
End Sub
 
Private Sub CommandButton2_Click()  'Suivant
Call IncrementListView(Increment:=1)
End Sub
 
Private Sub ListView1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
  Case Is = 8 'Touche H
    Call IncrementListView(Increment:=-1)
  Case Is = 2 'Touche B
    Call IncrementListView(Increment:=1)
End Select
End Sub
 
Private Sub UserForm_Initialize()
With ListView1
  With .ColumnHeaders
    .Clear
    .Add , , "Titre 1", 60, lvwColumnLeft
    .Add , , "Titre 2", 60, 2
    .Add , , "Titre 3", 60, 2
    .Add , , "Titre 4", 60, 2
    .Add , , "Titre 5", 50, 2
    .Add , , "Titre 6", 50, 2
    .Add , , "Titre 7", 60, 2
    .Add , , "Titre 8", 60, 2
  End With
  .View = lvwReport
  .FullRowSelect = False
  .FlatScrollBar = True
End With
Call ChargeListView
End Sub
 
'********************
Private Sub ChargeListView()
Dim S As Worksheet
Dim var
Dim i&
Dim j&
Dim k&
Dim cpt&
Dim T()
'---
'#########################################
'### Nom de feuille et plage à adapter ###
Set S = Sheets("BDD")
var = S.Range("A2:H" & S.[a65536].End(xlUp).Row)
'#########################################
For i& = 1 To UBound(var, 1)
  For j& = 1 To UBound(var, 2)
    cpt& = cpt& + 1
    ReDim Preserve T(1 To 8, 1 To cpt&)
    For k& = 1 To UBound(var, 2)
      T(k&, cpt&) = var(i&, k&)
    Next k&
    Exit For
  Next j&
Next i&
If cpt& = 0 Then
  ListView1.ListItems.Clear
  Exit Sub
End If
With ListView1
  .ListItems.Clear
  .View = lvwReport
  .FullRowSelect = True
  .Gridlines = True
  For i& = 1 To UBound(T, 2)
    .ListItems.Add , , T(1, i&)
      For j& = 2 To UBound(T, 1)
        .ListItems(.ListItems.Count).ListSubItems.Add , , T(j&, i&)
      Next j&
  Next i&
End With
End Sub
 
Private Sub IncrementListView(Increment As Long)
On Error Resume Next
With ListView1
  .SetFocus
  .ListItems(.SelectedItem.Index + Increment).Selected = True
  .ListItems(.SelectedItem.Index).EnsureVisible
End With
End Sub |