Historisation de données Excel

Bonjour,

Etant relativement novice dans l'utilisation d'Excel je cherche une solution à un cas:

J'ai 2 tableaux que je renseigne chaque mois sur une feuille 1. J'aimerais que les données saisies viennent s'historiser dans les feuilles 2 et 3 (une par tableau), en appuyant sur une touche pas exemple.

C'est une urgence professionnelle qui motive ce message. Je joins le fichier type pour être plus explicite : http://cjoint.com/?AItofatNtEu

Je reste à disposition pour plus d'information.

Merci d'avance

4 réponses

  1. Contributeur
    Et que devient la feuille 1 qui a déjà été exploitée : Elle est archivée ou les données qu'elle contenait sont-elles remplacées ?

    Pourquoi ne pas remplir directement les feuilles Société X et Société Y, en les complétant avec les masses salariales ? La Feuil1 ne présente aucun intérêt supplémentaire et me semble parfaitement inutile ...
    1. Les données de la Feuille1 sont remplacées tous les mois. Je dois garder cette présentation puisqu'elle sert pour d'autres reportings.
  2. utilise =Feuille nom de cellule

    Tape ceci dans ta 2è feuille
    =Feuil1!A1
    1. Oui mais des que je modifirai les données de la feuille 1 elle seront modifiées dans la feuille 2, hors je veux les historiser!
  3. Contributeur
    Tu as l'habitude des macros et de VBA ?
    1. Non je n'ai jamais eu a utiliser VBA par le passé.
      C'est apparement très utile.

      Merci pour ton aide... l'exemple de Mike-31 est tout à fait ce que je recherchais. Il me reste plus qu'a le manipuler un peu pour me l'approprier.
  4. Re,

    Comme le dit à juste titre Raymond que je salue, ce problème peut se traiter par VBA si tu as quelques notions.

    il faut ouvrir le Visual Basic d'Excel, créer un module et coller ce code que l'on associe à un bouton

    Sub Copy_tableau()
    Dim x As Variant
    Sheets("Feuil1").Select
    Range("$B$3:$C$8").Copy
    x = Range("C1").Value
    Sheets("Société X").Select
    With Worksheets("Société X").Range("A:A")
    Set c = .Find(x, LookIn:=xlValues)
    If Not c Is Nothing Then
    firstAddress = c.Address
    End If
    End With
    Range(firstAddress)(1, 3).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=True
    Sheets("Feuil1").Select
    Range("$G$3:$H$8").Copy
    x = Range("H1").Value
    Sheets("Société Y").Select
    With Worksheets("Société Y").Range("A:A")
    Set c = .Find(x, LookIn:=xlValues)
    If Not c Is Nothing Then
    firstAddress = c.Address
    End If
    End With
    Range(firstAddress)(1, 3).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=True
    Range("A4").Select
    Sheets("Feuil1").Select
    Range("A4").Select
    Application.CutCopyMode = False
    End Sub

    exemple
    https://www.cjoint.com/?AItqG2iGm9X

    1. Alors j'avoue que je ne connais pas du tout VBA. Mais l'exemple que tu me donne est tout a fait parlant. C'est exactement ce que je cherchais à faire.

      En revanche j'aurais besoin d'une ou 2 infos supplémentaires.

      Comment alimenter les mois suivant ? seulement en changeant le mois ou la date dans les tableau de la Feuille1?

      Dans les feuilles Société X et Société Y, les mois vont ils se créer au fur et à mesure des saisie?

      Encore merci pour ton aide.
      Elle m'est très précieuse.