XL 2019 Suivi des Modification

ExcelUser21

XLDnaute Nouveau
Bonjour,

je me presente, je suis Giu. je vien d'arrivée et j'espere pourvoir aider et etre aider.

voici mon probleme :))

j 'ai un code VBA, qui m'adapte dans un Sheet les modification dans une autre feuil dans le meme document.

j'ai besion svp de votre aide pour adapter le VBA.

Au moment actuel il me renvoie " auteur, nome de la feuil, text de ligne et colonne, Valeur entree, ancienne valeur, valeur après modification, date heure" dans le feuil de suivi, j'ai un contenu de cellule C à BX. Au moment actuel je recois comme retour ex: si je modifie la cellule D2 il me renvoie dans ma feuille de suivi le contenu de la cellule C1 et D2. mais si je modifie la cellule D3 le retour est : C2 + D3

j'aimerais que le retour de la ligne colonne est tjr la C1 d2, c1 d3 , F1, i1, K1, M1, etc. qui peut me dire ce qui faut changer dans ce code svp?



Private Sub Workbook_Sheetchange(ByVal feuille As Object, ByVal cible As Range)
Dim ValeurE() As Variant, AValeur() As Variant
On Error GoTo fin:

If feuille.Name = "Journal" Then Exit Sub
If cible.Columns.Count = Columns.Count Or cible.Rows.Count = Rows.Count Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
MsgBox "Impossible d'agir sur une ligne ou une colonne complète !"
Exit Sub
End If

Application.EnableEvents = False
ReDim ValeurE(1 To cible.Rows.Count, 1 To cible.Columns.Count)
ReDim AValeur(1 To cible.Rows.Count, 1 To cible.Columns.Count)
Application.Undo
For Lig = 1 To UBound(ValeurE)
For col = 1 To UBound(ValeurE, 2)
ValeurE(Lig, col) = cible.Cells(0, 1).Offset(Lig - 1, col - 1).FormulaLocal
Next
Next
Application.Undo
For Lig = 1 To UBound(AValeur)
For col = 1 To UBound(AValeur, 2)
AValeur(Lig, col) = cible.Cells(1, 1).Offset(Lig - 1, col - 1).FormulaLocal
Next
Next

For Lig = 1 To cible.Rows.Count
For col = 1 To cible.Columns.Count
If ValeurE(Lig, col) <> AValeur(Lig, col) Then
With Sheets("Journal").ListObjects(1)
.ListRows.Add
i = .ListRows.Count
With .DataBodyRange
.Cells(i, 7) = Now
.Cells(i, 2) = feuille.Name
.Cells(i, 4) = cible.Cells(0, 1).Offset(Lig - 1, col - 1)
.Cells(i, 3) = cible.Cells(0, 1).Offset(Lig - 1, premierecol - 1)
.Cells(i, 5) = "" & ValeurE(Lig, col)
.Cells(i, 6) = "" & AValeur(Lig, col)
.Cells(i, 1) = Environ("Username")
End With
End With
End If
Next
Next


fin:
Application.EnableEvents = True
If Err Then MsgBox "Erreur #" & Err.Number & " !"

End Sub


Merci Bien pour votre Aide.

cordialement
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
313 290
Messages
2 096 853
Membres
106 766
dernier inscrit
jBa2023