copier valeur après mise à jour

  • Initiateur de la discussion Initiateur de la discussion tibeur
  • 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 !

tibeur

XLDnaute Nouveau
bonjour, j'ai deux classeurs A.xls et B.xls, après mise à jour des données de l'un vers l'autre par des liaisons, je voudrais savoir comment copier la valeur mise à jour avant que ce dernier ne soit effacée par une nouvelle mise à jour.
par ex: en A1:A5 de A.xls j'ai des données qui sont copiées vers la feuille 1 de B.xls en A1:A5, puis de la feuille 1 elles sont copiées vers la feuille 2 de B.xls en A1:A5, comment faire pour que à chaque mise à jour la feuille 2 garde l'historique des données.
SI quelqu'un pouvait m'aider ça serait sympathique .
Merci
 
Re : copier valeur après mise à jour

Bonjour tibeur, et bienvenue,

Tu ne précises pas si tu manipules VBA, alors je considère que tu connais.

Si j'ai bien compris ta demande, tu désires ajouter tes mise-à-jour en colonne A de la feuille 2 de B.xls ?

Tu dois donc déterminer quelle est la dernière ligne remplie dans la colonne A, avec une instruction de ce type :

Code:
Dim Lg As Long
Lg = Workbooks("B.xls").Sheets("Feuil2").Range("A65536").End(xlUp).Row

Ensuite, tu n'as plus qu'à te positionner sur la première ligne vide, au sein d'une boucle par exemple :

Code:
With Workbooks("B.xls")
  For n = 1 To 5
    .Sheets("Feuil2").Cells(Lg + n) = .Sheets("Feuil1").Cells(n, 1)
  Next
End With

Et en réunissant les deux codes :

Code:
Dim Lg As Long

With Workbooks("B.xls")
  Lg = .Sheets("Feuil2").Range("A65536").End(xlUp).Row
  For n = 1 To 5
    .Sheets("Feuil2").Cells(Lg + n, 1) = .Sheets("Feuil1").Cells(n, 1)
  Next
End With

Tu peux améliorer la chose en écrivant la date des modifications, dans la colonne B par exemple :

Code:
With Workbooks("B.xls")
  Lg = .Sheets("Feuil2").Range("A65536").End(xlUp).Row
  For n = 1 To 5
    .Sheets("Feuil2").Cells(Lg + n, 1) = .Sheets("Feuil1").Cells(n, 1)
    .Sheets("Feuil2").Cells(Lg + n, 2) = Date
  Next
End With

Espérant t'avoir aidé.

Cordialement.
 
- 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
4
Affichages
414
Retour