Bonjour,
Pourquoi passer par une colonne intermédiaire (colonne A)
Ecrire directement en colonne B et procéder à un tri dans le programme de validation de la saisie. Supprimer toutes les formules de la colonne B
Private Sub cmdValider_Click()
Application.ScreenUpdating = False
'declaration de la variable
Dim lastrow As Integer, ctrl As Control, c As Range
'procedure sur les champs de remplissage
lastrow = Range("A1048576").End(xlUp).Row + 1
Cells(lastrow, 2).Value = Me.TextBox1.Value
'If lastrow > 2 Then
'Set c = Range("B1:B" & lastrow).Find(what:=TextBox1.Value, LookAt:=xlWhole)
'On Error Resume Next
'lastrow = c.Row
'End If
Cells(lastrow, 3).Value = Me.TextBox2.Value
Cells(lastrow, 4).Value = Me.TextBox3.Value
Cells(lastrow, 5).Value = Me.TextBox4.Value
Cells(lastrow, 6).Value = Me.TextBox5.Value
Cells(lastrow, 7).Value = Me.TextBox6.Value
Cells(lastrow, 8).Value = Me.TextBox7.Value
Cells(lastrow, 9).Value = Me.TextBox8.Value
For Each ctrl In UserForm1.Controls
If TypeName(ctrl) = "TextBox" Or TypeName(ctrl) = "ComboBox" Then
ctrl.Value = ""
End If
Next ctrl
derligne = Range("B65530").End(xlUp).Row
Range("B2:J" & derligne).Select
Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:= _
xlSortNormal
Application.ScreenUpdating = True
'procedure pour que le curseur reste sur le premier champ de saisi
TextBox1.SetFocus
End Sub
a+