Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim suiviGlobal As Worksheet
Dim lastRow As Long
' Nom de la feuille de calcul "Suivi global"
Const suiviGlobalSheetName As String = "Suivi global"
If LCase(Sh.Name) = LCase(suiviGlobalSheetName) Then Exit Sub
' Vérifie si la modification concerne la colonne A
Set Target = Intersect(Target, Sh.Columns("A"), Sh.UsedRange)
If Target Is Nothing Then Exit Sub
' Désactive les événements pour éviter une boucle infinie
Application.EnableEvents = False
' Gestion des erreurs pour vérifier si la feuille "Suivi global" existe
On Error Resume Next
Set suiviGlobal = Worksheets(suiviGlobalSheetName)
On Error GoTo 0
' Crée la feuille "Suivi global" si elle n'existe pas
If suiviGlobal Is Nothing Then
Set suiviGlobal = Worksheets.Add(After:=Worksheets(Worksheets.Count))
suiviGlobal.Name = suiviGlobalSheetName
Sh.Activate
End If
' Boucle au cas où il y a des entrées multiples (copier-coller)
For Each Target In Target
' Trouve la dernière ligne utilisée dans la colonne A de la feuille "Suivi global"
lastRow = suiviGlobal.Cells(suiviGlobal.Rows.Count, "A").End(xlUp).Row
' Ajoute la valeur de la cellule modifiée à la dernière ligne de la colonne A de la feuille "Suivi global"
suiviGlobal.Cells(lastRow + 1, "A").Value = Target.Value
Next Target
' Réactive les événements
Application.EnableEvents = True
End Sub