Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Créer historique valeurs

  • Initiateur de la discussion Initiateur de la discussion didi7828
  • Date de début Date de début

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 !

didi7828

XLDnaute Nouveau
Bonjour,

J'ai 3 cellules en A1, B1 et C1 dont les valeurs bougent fréquemment (via une macro) --> donc je ne touche à aucune des cellules manuellement
Je souhaite faire un historique dans les colonnes A, B et C de toutes les valeurs.

Pouvez vous m'aider sur ce sujet ?

Merci,
 
Re : Créer historique valeurs

Bonjour Didi7828 et bienvenu sur le forum,


C'est plutôt vague comme question!

Tu peux par exemple garder A1, B1, C1 pour tes manip.

Puis écrire l'historique de A1 de A2 vers A65536. Ecrire l'historique des valeurs écrites en B1 de B2 à B65536 et idem pour la colonne C?

Donc ta dernière valeur écrite en A1, B1, C1 sera celle la plus bas de ta colonne.

Code:
Sub Proposition1()
'...
'...
Cells(Range("A65536").End(xlUp).Row, 1) = TaValeurEcriteEnA1
'...
Cells(Range("B65536").End(xlUp).Row, 2) = TaValeurEcriteEnB1
'...
Cells(Range("C65536").End(xlUp).Row, 3) = TaValeurEcriteEnC1
'...

End Sub

Bonne soirée
 
Dernière édition:
Re : Créer historique valeurs

Re-bonsoir,

Plus sympa, plus court, plus facile à mettre en place, totalement indépendant de ta macro (pas besoin de se casser la tête à savoir où mettre quoi) et répond encore mieux à tes attentes.

Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
  
  If Target.Column <= 3 And Target.Row = 1 Then
     Cells(Range("A65536").End(xlUp).Row, Target.Column) = Cells(1, Target.Column)
  End If

End Sub

Macro à ne surtout pas mettre dans Module... mais sur la(es) feuille(s) concerné.

Pour tes macro, tu peux les mettre où tu veux, à la suite (dessous) ou dans un module, ou sur une autre feuille, il n'y a pas d'importance.

A+
 
Re : Créer historique valeurs

Re,

Si c'est le nombre de ligne qui te motive, exactement la même chose en 4 lignes seulement et 5 lettres de moins 🙂 ).

Car n'ayant pas fait de saut de ligne après "then", il ne faut pas mettre "end if".

Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
  
If Target.Column <= 3 And Target.Row = 1 Then [COLOR="Blue"]Cells(Range("A65536").End(xlUp).Row, Target.Column) = Cells(1, Target.Column)[/COLOR]

End Sub

A+
 
Dernière édition:
Re : Créer historique valeurs

Voici le petit fichier test tout simple en p.jointe.
Merci pour tes réponses mais j'ai écrit ton code et l'historique ne se crée pas.
Je ne comprends pas. Les valeurs des cellules de la feuille 2 sont liées a celles de la feuille 1 (je viens de m'apercevoir que je ne l'avais aps fait ds le fichier joint)

Quelqu'un peut m'aider ?

Merci !
 

Pièces jointes

Dernière édition:
Re : Créer historique valeurs

bonjour didi, excel_lent,

Les lignes ci-dessous enregistre les trois cellules (A1:C1) à la prochaine ligne libre à chaque changement d'une valeur de A1:C1.


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  
  If Target.Column <= 3 And Target.Row = 1 Then
     Application.EnableEvents = False
     Range("A" & Range("A65536").End(xlUp).Offset(1).Row).Resize(, 3) = Range("A1:C1").Value
     Application.EnableEvents = True
  End If
End Sub

A+
 
Re : Créer historique valeurs

Bonjour Didi7828, Hasco, le fil

En effet, il y avait deux petites erreur dans mes codes! Voici ci-dessous le code corrigé de la version de 2H02 (celle utilisé dans ton fichier). Bleu : partie modifié

Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
  
  If Target.Column <= 3 And Target.Row = 1 Then
     Cells([COLOR="blue"][B]Cells(65536, Target.Column[/B][/COLOR]).End(xlUp).Row[COLOR="Blue"][B] + 1[/B][/COLOR], Target.Column) = Cells(1, Target.Column)
  End If

End Sub

Code testé, cette fois c'est ok!

Bonne journée
 
Dernière édition:
Re : Créer historique valeurs

Merci pour vos réponses mais j'ai du mal m'exprimer.
Les cellules A1:C1 ne sont pas changées manuellement. Elles sont liées aux cellules de la feuille 1 qui elles meme viennent d'une macro qui importe les valeurs du web.

Ca devrait etre plus clair avec le fichier exemple en p.jointe.

Vous l'avez peut etre compris j'ai une macro qui importe des cours de bourse dans des cellules (onglet "portefeuille") et je cherche à mettre en historique ces valeurs dans l'onglet "historique")
Lien vers le fichier original : Cijoint.fr - Service gratuit de dépôt de fichiers
 

Pièces jointes

Re : Créer historique valeurs

Re bonjour didi,

tu peux appeler cette procédure en début de macro qui change les valeurs de Feuil1!A2:C2

Code:
Sub Historise()
    With Sheets("Feuil2")
        With .Range("A" & .Rows.Count).End(xlUp).Offset(1)
            .NumberFormat = "hh:mm:ss"
            .Resize(, 3) = Sheets("Feuil1").Range("A2:C2").Value
        End With
    End With
End Sub

Pour ce qui est du fichier sur ci-joint, je n'ouvre jamais les fichiers uploader ailleurs que sur le forum.
A+
 
Re : Créer historique valeurs

Bonsoir le fil,

J'étais parti sur le fait que [A1], [B1], [C1] était sur la même feuille que l'historique!

Macro adapté pour le fichier que tu as mis sur le forum Excel Download :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
  
  If Target.Column <= 3 And Target.Row = 2 Then
     Sheets("Feuil2").Cells(Sheets("Feuil2").Cells(65536, Target.Column).End(xlUp).Row + 1, Target.Column) = Sheets("Feuil1").Cells(2, Target.Column)
  End If

End Sub

Attention a bien enregistrer cette macro sur la Feuil1.

Ca fonctionne comme tu voulais?
 
- 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

Réponses
10
Affichages
313
Réponses
7
Affichages
218
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…