VBA pour l'historique par changement de formule

Salutations ,

J'ai besoin de conserver un historique des valeurs calculées par formule de la région D1 à L1 avec un fond rouge dans la feuille de calcul ci-jointe .

Changer la valeur de la cellule B1 bleu , alors il changera tous les résultats qui sont dans la région D1:L1 rouge.

j'ai besoin de construire un historique des valeurs qui se trouvaient dans la région D1: L1 .

Je crois qu'un code Vba pourra le résoudre, mais je ne peux pas construire ce code .

Merci pour votre aide .

6historique.xlsm (9.74 Ko)

bonjour,

Private Sub Worksheet_Change(ByVal Target As Range)
     If Intersect(Target, Range("b1")) Is Nothing Then Exit Sub     'seulement les changements de B1
     If Range("B1").Value = "" Then Exit Sub     'B1 n'est pas vide
     With Range("C" & Rows.Count).End(xlUp).Offset(1)     'on écrit toujours quelque chose dans cette colonne
          .Value = Now     'B1
          .Offset(, -1).Value = Range("B1").Value     'le moment
          .Offset(, 1).Resize(, 9).Value = Range("D1:L1").Value     'les valeurs calculées
     End With
End Sub
2historique.xlsm (20.22 Ko)

bonjour BsAlv ,

ta macro était très bien, elle va beaucoup m'aider, merci beaucoup .

un nouveau besoin est apparu ici , si vous pouviez m'aider avec ce nouveau besoin , je vous en serais également reconnaissant .

imaginons que la cellule B1 bleue soit liée à la valeur saisie dans la cellule N1 verte .

par conséquent, la valeur de B1 changerait en fonction de la valeur entrée dans la cellule N1 .

mais je dois quitter la région D1: L1 liée à la cellule B1 .

en bref: je vais taper value dans N1 , puis ça va changer la valeur de B1 , avec ça , ça va aussi créer l'historique pourquoi ça a changé la valeur de B1 .

par conséquent, l'historique sera créé car la modification de la cellule B1 s'est produite car la formule de B1 a été recalculée .

Est-il possible de réaliser cette œuvre d'art ? Merci pour votre aide .

1historique-ii.xlsm (16.10 Ko)

bonjour, la macro detecte les modifs de cellules sauf les formules, donc c'est maintenant N1 que vous changez, et par consequence B1 par la formule, donc il faut adapter la macro comme ça

If Intersect(Target, Range("N1")) Is Nothing Then Exit Sub 'seulement les changements de B1

Private Sub Worksheet_Change(ByVal Target As Range)
     If Intersect(Target, Range("N1")) Is Nothing Then Exit Sub     'seulement les changements de B1
     If Range("B1").Value = "" Then Exit Sub     'B1 n'est pas vide
     With Range("C" & Rows.Count).End(xlUp).Offset(1)     'on écrit toujours quelque chose dans cette colonne
          .Value = Now     'B1
          .Offset(, -1).Value = Range("B1").Value     'le moment
          .Offset(, 1).Resize(, 9).Value = Range("D1:L1").Value     'les valeurs calculées
     End With
End Sub

Merci Beaucoup BsAlv .

Rechercher des sujets similaires à "vba historique changement formule"