Note: The other languages of the website are Google-translated. Back to English
English English
  • Documents
  • Excel
  • Comment enregistrer des valeurs changeantes dans une cellule dans Excel?

Comment enregistrer des valeurs changeantes dans une cellule dans Excel?

Comment enregistrer chaque valeur changeante pour une cellule qui change fréquemment dans Excel? Par exemple, la valeur d'origine dans la cellule C2 est 100, lors du changement du nombre 100 à 200, la valeur d'origine 100 sera automatiquement affichée dans la cellule D2 pour l'enregistrement. Allez-y pour changer 200 à 300, le numéro 200 sera inséré dans la cellule D3, changer 300 à 400 affichera 300 à D4 et ainsi de suite. La méthode décrite dans cet article peut vous aider à y parvenir.

Enregistrer les valeurs changeantes dans une cellule avec le code VBA


Enregistrer les valeurs changeantes dans une cellule avec le code VBA

Le code VBA ci-dessous peut vous aider à enregistrer chaque valeur changeante dans une cellule dans Excel. Veuillez faire comme suit.

1. Dans la feuille de calcul contient la cellule dans laquelle vous souhaitez enregistrer les valeurs changeantes, cliquez avec le bouton droit sur l'onglet de la feuille, puis cliquez sur Voir le code dans le menu contextuel. Voir la capture d'écran:

2. Puis le Microsoft Visual Basic pour applications La fenêtre s'ouvre, veuillez copier ci-dessous le code VBA dans la fenêtre Code.

Code VBA: enregistrer les valeurs changeantes dans une cellule

Dim xVal As String
'Update by Extendoffice 2018/8/22
Private Sub Worksheet_Change(ByVal Target As Range)
    Static xCount As Integer
    Application.EnableEvents = False
    If Target.Address = Range("C2").Address Then
        Range("D2").Offset(xCount, 0).Value = xVal
        xCount = xCount + 1
    Else
        If xVal <> Range("C2").Value Then
         Range("D2").Offset(xCount, 0).Value = xVal
        xCount = xCount + 1
        End If
    End If
    Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    xVal = Range("C2").Value
End Sub

Notes: Dans le code, C2 est la cellule dans laquelle vous souhaitez enregistrer toutes ses valeurs changeantes. D2 est la cellule dans laquelle vous remplirez la première valeur changeante de C2.

3. appuie sur le autre + Q touches pour fermer le Microsoft Visual Basic pour applications fenêtre.

À partir de maintenant, chaque fois que vous modifiez des valeurs dans la cellule C2, les valeurs de modification précédentes seront enregistrées dans D2 et les cellules sous D2.


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité en
80 %

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus que
    300
    Caractéristiques puissantes
    . Prend en charge Office/Excel
    2007-2019 et 365
    . Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Fonctionnalités complètes
    30
    -jour d'essai gratuit. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité en
    50 %
    , et réduit chaque jour des centaines de clics de souris !
bas de cabine
Commentaires (49)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Hi


Cela fonctionne très bien si la valeur dans C2 est saisie à chaque fois, mais cela ne fonctionne pas si C2 contient une formule. Existe-t-il un moyen d'obtenir la même chose mais avec une formule en C2?


Merci pour cette solution facile.
Ce commentaire a été minimisé par le modérateur sur le site
Si vous savez comment l'utiliser si C2 contient une formule, veuillez me faire savoir comment vous l'avez fait. Je n'arrive pas à trouver comment aller nulle part sur Internet.
Ce commentaire a été minimisé par le modérateur sur le site
Good Day,
Le code a été optimisé. S'il vous plaît essayez et merci pour votre commentaire.

Dim xVal en tant que chaîne
Private Sub Worksheet_Change (Cible ByVal en tant que plage)
Statique xCount As Integer
Application.EnableEvents = False
Si Cible.Adresse = Plage("C2").Adresse Alors
Plage("D2").Offset(xCount, 0).Value = xVal
xCompte = xCompte + 1
autre
Si xVal <> Plage("C2").Valeur Alors
Plage("D2").Offset(xCount, 0).Value = xVal
xCompte = xCompte + 1
Si fin
Si fin
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange (Cible ByVal en tant que plage)
xVal = Plage("C2").Valeur
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
HAÏ,



LE VBS CI-DESSUS UNIQUEMENT C2 PASSER À D2,



INEED C2 À C55 PASSER À D2 À D55



POUVEZ-VOUS AIDER ET M'ENVOYER alexmathew33@gmail.com
Ce commentaire a été minimisé par le modérateur sur le site
S'il vous plaît aidez-moi sur le scénario ci-dessous:
À partir de la feuille 1 :
A1=VALEUR (Modifications dues à RTD avec formule)
B2= VALUE1 (Modifications dues à RTD avec formule)

Copiez toutes les cellules de valeurs précédentes A1, B1 dans Sheet2 des colonnes M, NOF Même excel ou Sheet1 du nouveau classeur

S'il vous plaît partager avec moi à melukotahari@gmail.com

-Melukota
Ce commentaire a été minimisé par le modérateur sur le site
POUVONS-NOUS OBTENIR LE VBS POUR LE CI-DESSUS
Ce commentaire a été minimisé par le modérateur sur le site
Et si la cellule C2 était une formule ? Comment enregistrer les valeurs de C2 si c'est une formule ?
Ce commentaire a été minimisé par le modérateur sur le site
Good Day,
Le code a été optimisé. S'il vous plaît essayez et merci pour votre commentaire.

Dim xVal en tant que chaîne
Private Sub Worksheet_Change (Cible ByVal en tant que plage)
Statique xCount As Integer
Application.EnableEvents = False
Si Cible.Adresse = Plage("C2").Adresse Alors
Plage("D2").Offset(xCount, 0).Value = xVal
xCompte = xCompte + 1
autre
Si xVal <> Plage("C2").Valeur Alors
Plage("D2").Offset(xCount, 0).Value = xVal
xCompte = xCompte + 1
Si fin
Si fin
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange (Cible ByVal en tant que plage)
xVal = Plage("C2").Valeur
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
HAÏ,



LE VBS CI-DESSUS UNIQUEMENT C2 PASSER À D2,



INEED C2 À C55 PASSER À D2 À D55



POUVEZ-VOUS AIDER ET M'ENVOYER alexmathew33@gmail.com
Ce commentaire a été minimisé par le modérateur sur le site
Salut - J'apprécie vraiment ce tutoriel... J'essaie d'enregistrer la valeur modifiée sur une feuille de calcul différente. Par exemple, je souhaite enregistrer la valeur de la feuille 1 C2 sur la feuille 2 D2. Pouvez-vous fournir un code ajusté ?
Merci !
Ce commentaire a été minimisé par le modérateur sur le site
Les enregistrements peuvent-ils être en Horizontal au lieu de Vertical ?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, Serait-il possible que cette macro enregistre deux cellules séparées dans deux colonnes séparées ? C'est à dire. Puis-je enregistrer toutes les valeurs de A1 dans la colonne B et toutes les valeurs de C1 dans la colonne D ?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,
Veuillez essayer la méthode dans cet article :
Comment se souvenir ou enregistrer la valeur de cellule précédente d'une cellule modifiée dans Excel?
https://www.extendoffice.com/documents/excel/5056-excel-remember-save-previous-cell-value.html
Ce commentaire a été minimisé par le modérateur sur le site
merci pour cela, mais au lieu de continuer indéfiniment, comment pourrais-je redémarrer à la première cellule après X fois ?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,
Voulez-vous dire qu'après avoir enregistré X fois, vous souhaitez redémarrer à la première valeur d'enregistrement ?
Désolé, je ne suis pas sûr d'avoir compris votre question. Ce serait bien si vous pouviez fournir une capture d'écran de ce que vous essayez de faire.
Ce commentaire a été minimisé par le modérateur sur le site
Merci

mais que puis-je faire si je dois le répéter pour plusieurs cellules
Ce commentaire a été minimisé par le modérateur sur le site
Merci

mais que puis-je faire si je dois le répéter pour un raw
Ce commentaire a été minimisé par le modérateur sur le site
Peki bu kaydi yatay olarak nasıl kaydedeceğiz. Satırlara değil Sütunlara kaydetmesini istiyorum. Teşekkürler
Ce commentaire a été minimisé par le modérateur sur le site
Comment puis-je enregistrer le numéro dès qu'il est généré et non après la génération d'un nouveau numéro ? Le problème que j'ai est que le numéro n'est pas enregistré tout de suite mais après la création d'un deuxième numéro; cela signifie que ni la cellule que j'enregistre ni la cellule qui est la cible n'ont le numéro... comment puis-je enregistrer dès que le numéro est généré ? Merci pour ton aide!
Ce commentaire a été minimisé par le modérateur sur le site
Salut John,
Désolé, je ne peux pas vous aider. Bienvenue à poster toute question dans notre forum: https://www.extendoffice.com/forum.html. Merci pour votre commentaire.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, Serait-il possible d'appliquer ceci pour plus d'une cellule ?
Ce commentaire a été minimisé par le modérateur sur le site
Salut! Merci pour le code mais j'ai une question

Existe-t-il un moyen de modifier le code, de sorte qu'il enregistre la valeur si la cellule quotidiennement, ou certains jours, que je spécifie dans une colonne séparée ?


Merci !
Ce commentaire a été minimisé par le modérateur sur le site
Essaye ça

Dim xVal en tant que chaîne
Dim iVal comme entier
Private Sub Worksheet_Change (Cible ByVal en tant que plage)
Statique xCount As Integer
iVal = Application.WorksheetFunction.Count(Range("F:F"), 1)
xCompte = iVal
Application.EnableEvents = False
Si Cible.Adresse = Plage("C2").Adresse Alors
Plage("E3").Décalage(xCount, 0).Valeur = Plage("C2").Valeur
Range("F3").Offset(xCount, 0).Value = Now
xCompte = xCompte + 1
autre
Si xVal <> Plage("C2").Valeur Alors
Plage("E3").Décalage(xCount, 0).Valeur = Plage("C2").Valeur
Range("F3").Offset(xCount, 0).Value = Now
xCompte = xCompte + 1
Si fin
Si fin
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange (Cible ByVal en tant que plage)
xVal = Plage("C2").Valeur
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
J'ai essayé ce code pour la cellule C2 qui contient des valeurs DDE qui changent seconde par seconde. J'utilise ce code suivant mais ne fonctionne pas.

Dim xVal en tant que chaîne
Private Sub Worksheet_Change (Cible ByVal en tant que plage)
Statique xCount As Integer
Application.EnableEvents = False
Si Cible.Adresse = Plage("C2").Adresse Alors
Plage("D2").Offset(xCount, 0).Value = xVal
xCompte = xCompte + 1
autre
Si xVal <> Plage("C2").Valeur Alors
Plage("D2").Offset(xCount, 0).Value = xVal
xCompte = xCompte + 1
Si fin
Si fin
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange (Cible ByVal en tant que plage)
xVal = Plage("C2").Valeur
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Bonne journée,
Quelle version d'Excel utilisez-vous ?
Ce commentaire a été minimisé par le modérateur sur le site
cela fonctionne lorsque je tape les données, cela ne fonctionne pas lorsque je diffuse directement des données en temps réel vers cette cellule (=RTD(.....)). comment puis-je le faire fonctionner avec RTD?
Ce commentaire a été minimisé par le modérateur sur le site
Merci beaucoup pour les tutoriels, j'aime savoir s'il existe un moyen de faire en sorte qu'une cellule se comporte comme une calculatrice normale.
c'est-à-dire que cette cellule doit être capable d'additionner les chiffres qui apparaissent dans une autre cellule, tout en gardant le dernier chiffre cumulé visible.
Cette autre cellule sera la cellule d'entrée au clavier ou la cellule active.
Mise en situation :
Cellule 1 : =2*5, la réponse apparaît dans la cellule 2,
Cellule 1 : =3*6.8, la réponse est ajoutée à la valeur précédente résultant de (2*5) et apparaît toujours dans la cellule 2.
Ce commentaire a été minimisé par le modérateur sur le site
La formule ci-dessus ne fonctionne pas pour les formules, uniquement pour la saisie manuelle. existe-t-il un moyen de modifier le codage pour le faire fonctionner pour les cellules contenant une formule?



Dim xVal en tant que chaîne
'Mettre à jour par Extendoffice 2018/8/22
Private Sub Worksheet_Change (Cible ByVal en tant que plage)
Statique xCount As Integer
Application.EnableEvents = False
Si Cible.Adresse = Plage("C2").Adresse Alors
Plage("D2").Offset(xCount, 0).Value = xVal
xCompte = xCompte + 1
autre
Si xVal <> Plage("C2").Valeur Alors
Plage("D2").Offset(xCount, 0).Value = xVal
xCompte = xCompte + 1
Si fin
Si fin
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange (Cible ByVal en tant que plage)
xVal = Plage("C2").Valeur
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Good Day,
Veuillez essayer le VBA ci-dessous.



Dim xVal en tant que chaîne

Private Sub Worksheet_Change (Cible ByVal en tant que plage)

Statique xCount As Integer

Application.EnableEvents = False

Si Cible.Adresse = Plage("C2").Adresse Alors

Plage("D2").Offset(xCount, 0).Value = xVal

xCompte = xCompte + 1

autre

Si xVal <> Plage("C2").Valeur Alors

Plage("D2").Offset(xCount, 0).Value = xVal

xCompte = xCompte + 1

Si fin

Si fin

Application.EnableEvents = True

End Sub

Private Sub Worksheet_SelectionChange (Cible ByVal en tant que plage)

xVal = Plage("C2").Valeur

End Sub
Ce commentaire a été minimisé par le modérateur sur le site
ne fonctionne pas pour les formules
Ce commentaire a été minimisé par le modérateur sur le site
Ce monde bien, cependant, j'ai besoin d'appliquer ce code à 2 cellules différentes, en enregistrant les valeurs changeantes pour chaque cellule dans des colonnes séparées et correspondantes. Comment modifier le code ? Merci.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,

Veuillez essayer la méthode dans cet article :

Comment se souvenir ou enregistrer la valeur de cellule précédente d'une cellule modifiée dans Excel?

https://www.extendoffice.com/documents/excel/5056-excel-remember-save-previous-cell-value.html
Ce commentaire a été minimisé par le modérateur sur le site
Est-il possible de l'adapter et de l'utiliser avec DDE/RTD ? Fonctionne bien lors du changement manuel des cellules, mais pas avec DDE/RTD.
Ce commentaire a été minimisé par le modérateur sur le site
Cela peut-il être modifié pour fonctionner avec plusieurs cellules dans une feuille de calcul?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,

Veuillez essayer la méthode dans cet article :

Comment se souvenir ou enregistrer la valeur de cellule précédente d'une cellule modifiée dans Excel?

https://www.extendoffice.com/documents/excel/5056-excel-remember-save-previous-cell-value.html
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour! J'ai essayé d'utiliser ce code pour enregistrer chaque changement dans la valeur d'une cellule particulière. Cependant, je me demandais si quelqu'un pouvait m'aider en le modifiant afin que le changement de valeur soit collecté dans un onglet DIFFÉRENT et qu'il soit également enregistré à chaque fois que le classeur est fermé. Puisqu'il se réinitialise à chaque fois que le classeur est ouvert sans enregistrer les valeurs précédentes. Code : Dim xVal As String
'Mettre à jour par Extendoffice 2018/8/22
Private Sub Worksheet_Change (Cible ByVal en tant que plage)
Statique xCount As Integer
Application.EnableEvents = False
Si Cible.Adresse = Plage("J7").Adresse Alors
Plage("AB2").Offset(xCount, 0).Value = xVal
xCompte = xCompte + 1
autre
Si xVal <> Plage("J7").Valeur Alors
Plage("AB2").Offset(xCount, 0).Value = xVal
xCompte = xCompte + 1
Si fin
Si fin
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange (Cible ByVal en tant que plage)
xVal = Plage("J7").Valeur
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Salut, merci pour le ci-dessous. Question rapide... êtes-vous en mesure de réinitialiser cela de temps en temps afin que, sur votre demande, vous puissiez obtenir la macro pour supprimer tous les numéros précédents et recommencer à enregistrer les numéros à partir de la cellule D2 ? Pour le moment, les numéros sont enregistrés D2, D3, D4, D5, D6 etc.
Il n'y a pas encore de commentaires postés ici
TÉLÉCHARGER PLUS
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés

Nous suivre

Copyright © 2009 - www.extendoffice.com. | Tous les droits sont réservés. Alimenté par ExtendOffice. | | Plan du site
Microsoft et le logo Office sont des marques commerciales ou des marques déposées de Microsoft Corporation aux États-Unis et / ou dans d'autres pays.
Protégé par Sectigo SSL