Bon faites les modifications suivantes
1. Dans la feuille SOURCE, remplacez le code Private Sub Worksheet_BeforeDoubleClick par celui ci-dessous
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = False
If Not Intersect(Target, Range("Source").ListObject.DataBodyRange) Is Nothing Then
frmmodification.Show
End If
Cancel = True
End Sub
2. Dans l'USF, remplacez le code Initialize par celui ci-dessous
Private Sub UserForm_Initialize()
Dim TS As ListObject
Dim ligne As Integer
Set TS = Range("Source").ListObject
With TS
ligne = ActiveCell.Row - .DataBodyRange.Row + 1
Me.cbocivilite = .DataBodyRange(ligne, 1)
Me.txtnom = .DataBodyRange(ligne, 2)
Me.txtprenom = .DataBodyRange(ligne, 3)
Me.txtdate = .DataBodyRange(ligne, 4)
If Me.txtn_carte = vbNullString Then
Me.txtn_carte = WorksheetFunction.Max(.ListColumns(5).DataBodyRange) + 1
Else: Me.txtn_carte = .DataBodyRange(ligne, 5)
End If
Me.cboformation = .DataBodyRange(ligne, 6)
Me.txtdateformation = .DataBodyRange(ligne, 7)
Me.cbocotisation = .DataBodyRange(ligne, 8)
End With
End Sub
Pour faire apparaitre l'USF vous devez faire un double clic dans une cellule du tableau. Le double clic ouvrira l'USF avec les infos de la ligne
Si un numéro existe, le numéro de carte sera celui mentionné dans la ligne
Si le numéro de carte n'existe pas dans la ligne, le code mettra un nouveau numéro
Faites un test
Je reviens plus tard pour la suite