Bonjour,
J'ai mis en place ces 2 codes qui permettent de la rapatrier les données d'une ListBox dans des TextBox après un clic sur une ligne et ensuite, après modification et en appuyant sur le bouton "Modifier" de remplacer les données existantes dans le TS (t_Noms) de la feuille "List_agents".
Hors, dès que je modifie une TextBox autre que le Nom, la donnée revient systématiquement après tabulation automatique à celle de la ListBox sans la modifier.
Pouvez-vous m'éclairer s'il vous plaît ? Je ne comprends pas.
Merci par avance
Code lorsque l'on clique sur une ligne de la ListBox
Module pour transférer les données modifiées vers le TS
J'ai mis en place ces 2 codes qui permettent de la rapatrier les données d'une ListBox dans des TextBox après un clic sur une ligne et ensuite, après modification et en appuyant sur le bouton "Modifier" de remplacer les données existantes dans le TS (t_Noms) de la feuille "List_agents".
Hors, dès que je modifie une TextBox autre que le Nom, la donnée revient systématiquement après tabulation automatique à celle de la ListBox sans la modifier.
Pouvez-vous m'éclairer s'il vous plaît ? Je ne comprends pas.
Merci par avance
Code lorsque l'on clique sur une ligne de la ListBox
VB:
Private Sub Lst_Employ_Click()
'Vérifie si une ligne a été sélectionné
With Me
With .Lst_Employ
If .ListIndex <> -1 Then
'On récupère les valeurs de la ligne sélectionnée dans les TextBox
Me.Txt_Nom.Value = .List(.ListIndex, 1)
Me.Txt_Code.Value = .List(.ListIndex, 0)
Me.Txt_Prénom.Value = .List(.ListIndex, 2)
Me.Txt_Temps.Text = Application.Text(.List(.ListIndex, 3), "[h]:mm")
End If
End With
End With
End Sub
Module pour transférer les données modifiées vers le TS
Code:
Sub RemplacerTableau()
Dim Ws As Worksheet
Dim Tbl As ListObject
Dim Cell As Range
Dim CodRec As String
'On définie la feuille de calcul
Set Ws = Sheets("Liste_agents")
'On définie le TS
Set Tbl = Ws.ListObjects("t_Noms")
'On définie le code à rechercher
CodRec = UfGestTemps.Txt_Code.Value
'On recherche le code dans la 1ère colonne du TS
Set Cell = Tbl.ListColumns(1).DataBodyRange.Find(What:=CodRec, LookIn:=xlValues, LookAt:=xlWhole)
'Si le code est trouvé, on remplace les données de la ligne
If Not Cell Is Nothing Then
Cell.Offset(0, 1).Value = UfGestTemps.Txt_Nom.Value 'On remplace la valeur de la colonne 2
Cell.Offset(0, 2).Value = UfGestTemps.Txt_Prénom.Value 'On remplace la valeur de la colonne 3
Cell.Offset(0, 3).Value = UfGestTemps.Txt_Temps.Value 'On remplace la valeur de la colonne 4
Else
MsgBox "Code non trouvé"
End If
End Sub