Bonjour,
Un exemple à étudier.
Fais attention avec les données mises sous forme de tableau. On ne fait pas n'importe quoi !...
Pour la numérotation, voir code commentée.
Cdlt.
Private Sub cmdInsertData_Click()
Dim cl As Variant
Dim Num As Long, n As Long
If MsgBox("confirmez vous l'ajout des donnŽes?", vbYesNo, "confirmation") = vbYes Then
Set lo = Worksheets("Tableau").ListObjects(1)
cl = Array("S", "1G", "2G", "3G", "4G")
n = Application.GetCustomListNum(cl)
If n = 0 Then Application.AddCustomList (cl)
'Numéro d'enregistrement par SER
Num = WorksheetFunction.CountIf(lo.ListColumns(2).DataBodyRange, TextBox2.Value) + 1
'ou numéro d'enregistrement dans le tableau
'Num = lo.ListRows.Count + 1
Set LR = lo.ListRows.Add
With LR.Range
.Cells(1, 1) = Num
.Cells(1, 2) = TextBox2.Value
.Cells(1, 3) = TextBox3.Value
.Cells(1, 4) = TextBox4.Value
.Cells(1, 5) = TextBox5.Value
End With
End If
With lo.Sort
.SortFields.Add Key:=lo.ListColumns(2).DataBodyRange, _
SortOn:=xlSortOnValues, _
Order:=xlAscending, _
CustomOrder:=Application.CustomListCount
.SortFields.Add Key:=lo.ListColumns(1).DataBodyRange, _
SortOn:=xlSortOnValues, _
Order:=xlAscending
.Apply
.SortFields.Clear
End With
n = Application.GetCustomListNum(cl)
Application.DeleteCustomList n
End Sub