Voilà, solution que je teste, mais tu peux essayer
Affiche l'onglet paramètres pour ajouter des personnes ...
90% de réflexion, 10% de réalisation pour faire simple ...
mais c'est peut-être déroutant si tu es habituée à des formules dans une feuille !! ici les modifications se répercutent dans l'onglet BdD avec actualisation d'un TCD
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cel As Range
Dim ligne As Long
Dim nouveau As Long
Application.EnableEvents = False
' changement du site = effacement nom et données
If Not Intersect(Target, Range("A2")) Is Nothing Then
Range("B2").ClearContents
Range("C10:F16").ClearContents
Range("H10:H16").ClearContents
' changement nom = effacement puis mise à jour des données partir de la BdD
ElseIf Not Intersect(Target, Range("B2:B5")) Is Nothing Then
Range("C10:F16").ClearContents
Range("H10:H16").ClearContents
For ligne = 10 To 16
If Cells(ligne, 1) <> 0 Then
With Sheets("BdD")
Cells(ligne, "C") = .Cells(Cells(ligne, 1) + 1, "E")
Cells(ligne, "D") = .Cells(Cells(ligne, 1) + 1, "F")
Cells(ligne, "E") = .Cells(Cells(ligne, 1) + 1, "G")
Cells(ligne, "F") = .Cells(Cells(ligne, 1) + 1, "H")
Cells(ligne, "H") = .Cells(Cells(ligne, 1) + 1, "O")
End With
End If
Next
' changement de données = mise à jour de la BdD et actualisatuon du TCD
ElseIf Not Intersect(Target, Range("C10:H16")) Is Nothing Then
For Each cel In Target
ligne = cel.Row
If Cells(ligne, 1) <> 0 Then ' mise à jour de la ligne dans la BdD
With Sheets("BdD")
.Cells(Cells(ligne, 1) + 1, "E") = Cells(ligne, "C")
.Cells(Cells(ligne, 1) + 1, "F") = Cells(ligne, "D")
.Cells(Cells(ligne, 1) + 1, "G") = Cells(ligne, "E")
.Cells(Cells(ligne, 1) + 1, "H") = Cells(ligne, "F")
.Cells(Cells(ligne, 1) + 1, "I") = Cells(ligne, "G")
.Cells(Cells(ligne, 1) + 1, "O") = Cells(ligne, "H")
End With
Else ' ajout d'une nouvelle ligne dans la BdD
With Sheets("BdD")
nouveau = .Cells(Application.Rows.Count, 1).End(xlUp).Row + 1
.Cells(nouveau, "A") = Range("A2") ' site
.Cells(nouveau, "B") = Range("B2") ' nom
.Cells(nouveau, "C") = Cells(ligne, "B") ' date
.Cells(nouveau, "E") = Cells(ligne, "C")
.Cells(nouveau, "F") = Cells(ligne, "D")
.Cells(nouveau, "G") = Cells(ligne, "E")
.Cells(nouveau, "H") = Cells(ligne, "F")
.Cells(nouveau, "I") = Cells(ligne, "G")
.Cells(nouveau, "O") = Cells(ligne, "H")
End With
End If
Next
Sheets("TCD").PivotTables("TCD").PivotCache.Refresh
End If
Application.EnableEvents = True
End Sub