Connaître l'historique, changements des données dans le temps, figer les données...

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

CyberNeo99

XLDnaute Occasionnel
Bonjour à tous,

Voici mon Pb, j'aimerais pouvoir ainsi connaître l'historique des changements par exemples d'une somme. Si je prend C1 = A1 + B1 et que les valeurs de A1 et B1 change j'aimerais connaître la somme des 2 premières valeurs qui ont été saisie en A1 et B1, la 2e somme et ainsi de suite dans le temps... Je joint un fichier.

S'il y a des questions ne vous gêné pas.


Merci à l'avance

Neo 🙂
 

Pièces jointes

Re : Connaître l'historique, changements des données dans le temps, figer les données

Bonjour CyberNeo99,

J'avoue que le titre du topic ne m'évoque pas grand chose...
Vois si le fichier joint répond à ta demande :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$1" And Range("A1") <> "" Then
    Range("IV1").End(xlToLeft).Offset(0, 1) = Range("C1")
    Application.EnableEvents = False
        Range("A1:B1") = ""
    Application.EnableEvents = True
    [A1].Select
End If
End Sub
 

Pièces jointes

Re : Connaître l'historique, changements des données dans le temps, figer les données

Bonjour à vous 2,

Je dois avouer que c'est imaginatif mais je demandais de l'aide sans me douter que cela pouvais être compliquer. Par formule je crois que c'est tout simplement impossible.... J'aime bien les idées que vous avez lancé le hic est de concervé la somme. Softmama la somme disparaît de chaque saisie de nombre il fait très bien une partie de travail je dois avouer et en fait via code VBA il me faudrait être plus précis.

Je ne sais pas si cela est possible si la somme change faire ce que vous faites tous les 2 dans chacun de vos fichiers. Lui faire vérifier une cellule en particulier que si elle change renvoyez la valeur ailleurs pour ainsi garde l'historique.

En fouillant quelque peu sur le forum j'ai trouvé un fichier intéressant qui compile les données. Je le fais joindre peut être que cela apportera de l,eau au moulin, un nouveau regard peut être... L'idée est bien dans ce fichier mais ça serait bien via une somme et que ce soit la valeurs de la somme qui soit la référence pour ainsi archiver sa valeur....

Merci encore à l'avance

Neo
 

Pièces jointes

Re : Connaître l'historique, changements des données dans le temps, figer les données

Bonjour àa tous,

En réfléchissant il faudrait que ce soit lors de la fermeture du fichier que ce système serait utile car à chaque modification d'une des valeurs source il archiverait la valeur. il pourrait y en avoir une tonne de valeur, si par exemple la personne fait une ou des erreurs à chaque changement de la somme il archiverait la valeur de la somme.

Le mieux serait de faire une telle opération à la fermeture du fichier. Faire la vérification lors de la fermeture si la ou les valeurs cible ont changées et si elles ont changées alors faire une sorte d'archivage.

Au début je pensais que ça serait simple mais en fait ce que je recherche devient de plus en plus compliqué car je n'ai fais qu'un ébauche au départ. Pour les besoins par rapport à mon fichier sur lequel je travaille c'est beaucoup plus compliqué...

Pour ce qui de connaître l'historique des changements pour une cellule je suis toujours intéressé.

Merci à l'avance

Neo
 
Re : Connaître l'historique, changements des données dans le temps, figer les données

Bonjour,

Ces deux macros à placer dans le module Thisworkbook et à tester:

VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If A1 = Range("A1") And B1 = Range("B1") Then Exit Sub
    A1 = Range("A1"): B1 = Range("B1")
    Range("IV1").End(xlToLeft).Offset(0, 1) = Range("C1")
    ActiveWorkbook.Close True
End Sub

VB:
Private Sub Workbook_Open()
    A1 = Range("A1").Value
    B1 = Range("B1").Value
End Sub

Déclarer A1 et B1 en tête d'un module standard :
VB:
Global A1 As Double, B1 As Double
 
Re : Connaître l'historique, changements des données dans le temps, figer les données

Bonjour Softmama,

Super ton code. Est-ce possible d'appliquer ce code mais seulement à une feuille en particulier par exemple car ton code s'applique à toutes les feuilles sans exception.... Lorsu'on ferme le fichier avec le X rouge dans le coin, il ne demande si l'on veut sauvegarder malgré que l'on est fait une modification. Autre petite demande si je peux.... est-ce qu'il est possible qu'en gardant la même idée le code tienne compte d'une plage au lieu par exemple de la cellule A1 et B1 seulement par exeple si la somme est fait sur une plage en colonne ou en ligne par exemple....J'ai changé ton code pour le faire sur une somme de 3 valeurs et le code suivant est devenue

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If A1 = Range("A1") And B1 = Range("B1") Then Exit Sub
A1 = Range("A1"): B1 = Range("B1"): C1 = Range("C1")
Range("IV1").End(xlToLeft).Offset(0, 1) = Range("D1")
ActiveWorkbook.Close True
End Sub

Le Pb est que si la somme se fait sur une plage avec 20 valeurs par exemples le code deviendra pas mal long....et ainsi le code pourra s'appliquer pour une somme de 2 valeurs comme de 20, voir 30 valeurs...

Gros Merci à l'avance

Neo
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour