Enregistré le changement de valeur dans une cellule [Résolu]

Signaler
Messages postés
82
Date d'inscription
mardi 27 août 2019
Statut
Membre
Dernière intervention
3 octobre 2019
-
New_VBA_User
Messages postés
82
Date d'inscription
mardi 27 août 2019
Statut
Membre
Dernière intervention
3 octobre 2019
-
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é.

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


Configuration: Windows / Edge 18.17763

2 réponses

Messages postés
9432
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 janvier 2020
503
bonjour,
je ne comprends pas "enregistré les changement dans la donné existante sans crée de doublons".
où veux-tu enregistrer quoi? peux-tu donner un exemple?
New_VBA_User
Messages postés
82
Date d'inscription
mardi 27 août 2019
Statut
Membre
Dernière intervention
3 octobre 2019
> yg_be
Messages postés
9432
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 janvier 2020

désolé de t'embêter encore, j'ai juste encore une dernière questions.

dans la feuille Modification Log, tu as vu qu'il y a le colonne F où utilisateur doit rempli pourquoi il fait le changement et colonne H où utilisateur peut mettre une référence ou autre concernant le changement.
il faut remplir manuellement ces colonne, comme la feuille Modifications Log ne pourra pas être modifié manuellement, seulement modifiable via le code. c'est quoi la meilleurs manière de faire? il faut crée une userform qu'il faut appeler dans la process d'enregistrement et les champs qui vont dans les colonne F et H?

Merci encore de ton aide.
yg_be
Messages postés
9432
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 janvier 2020
503 > New_VBA_User
Messages postés
82
Date d'inscription
mardi 27 août 2019
Statut
Membre
Dernière intervention
3 octobre 2019

tu peux aussi utiliser des inputbox.
en passant, tu prefereras peut-être, au lieu de Application.UserName: Environ("USERNAME")
New_VBA_User
Messages postés
82
Date d'inscription
mardi 27 août 2019
Statut
Membre
Dernière intervention
3 octobre 2019
> yg_be
Messages postés
9432
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 janvier 2020

Comme je ne maîtrise pas encore bien le VBA, tu arrives à fair un exemple? stp.

pour le username, j'ai déjà changé.
yg_be
Messages postés
9432
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 janvier 2020
503 > New_VBA_User
Messages postés
82
Date d'inscription
mardi 27 août 2019
Statut
Membre
Dernière intervention
3 octobre 2019

as-tu suivi le lien derrière "inputbox" en #32?
New_VBA_User
Messages postés
82
Date d'inscription
mardi 27 août 2019
Statut
Membre
Dernière intervention
3 octobre 2019
> yg_be
Messages postés
9432
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 janvier 2020

oui, j'ai regardé, mais je pense que ça va me prendre beaucoup de temps à l'implémenter, et je n'ai pas de temps, c'est ça le problème.
c'est pour ça que je t'ai demandé de l'aide.
Messages postés
9432
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 janvier 2020
503
tes déclarations ne sont pas correctes, il faut faire:
Dim Plage As Range, i As Long, ii As Long, Ligne As Long, Ligne2 As Long, Nom As String