Bonjour,

j'aimerai enregistré les donnés dans une feuilles avec un bouton Sauvegarde dans un 1er temps, et ensuite enregistré les changement dans la donné existante sans crée de doublons.

j'arrive a enregistré les donnés, mais je n'arrive pas enregistré les valeur changés.

je sauvegarde toute la ligne avec ou sans changement.

ça me pose un problème car je dois tracé le changement pour un audit.

merci de l'aide, voici le code utilisé, je peux vous fournir le fichier si souhaité.

voici une image d'exemple,
Pièce jointe 505458

par exemple, d'abord on registre les valeur de tous les textbox, ensuite, on change la valeur de "Site" dans ce cas j'aimerai juste enregistré la valeur changé "Site" et non le reste, le reste de ligne reste inchangé, dans ce cas, je peux repérer la colonne changé pour audit.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
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
 
Private Sub CommandButton_SaveData_Click()
 
  Dim Plage As Range, i, ii, Ligne, Ligne2 As Long, Nom As String
  Dim Ctrl As Control
 
 
    If MsgBox("Are you sure you want to save your changes?", vbYesNo, "Confirmation request") = vbYes Then
        With Sheets("Param")
            Set Plage = .Range("A1", .Cells(.Rows.Count, 1).End(xlUp))
        End With
 
'****************** Write Data in spéficique file *************************************************************
        With Sheets("TIA")
            .Activate
            Ligne = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
            If IsNumeric(Application.Match(CLng(Me.TextBox_EquipementSAP.Text), .[G:G], 0)) Then    ' find equipment N° in colum A, we have a numerical result
                Ligne = Application.Match(CLng(Me.TextBox_EquipementSAP.Text), .[G:G], 0)   ' get the line number
            Else
                Ligne = .Cells(.Rows.Count, 1).End(xlUp).Row + 1    ' empty line
            End If
 
            For i = 1 To 94        ' 98 critères à enregistés'
                Nom = Plage(i).Offset(, 1)
                If Nom <> "" Then .Cells(Ligne, i) = Me.Controls(Nom).Value    ' on sauvegarde toute la ligne'
            Next i
        End With
    End If
End Sub