Historisation des données Excel

Résolu
Digmetos -  
gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

j'ai une question similaire à celle posée dans le sujet "http://wwww.commentcamarche.net/forum/affich 5847197 copie de colonnes excel automatiques" mais comme la solution n'y est pas indiquée, je me permets de revenir tout en spécifiant mes attentes précises:
j'ai une feuille (feuille A) qui contient plusieurs informations (ex. budget, statut, etc. un peu partout dans la feuille) sur une période bien précise. Cette période est saisie "en dur" dans la feuille A à chaque mise à jour des informations en question.
Je souhaiterais pouvoir archiver (en appuyant sur un bouton par ex.) toutes les informations sélectionnées dans des colonnes par "période" afin de pouvoir dessiner des tendances (et archiver au passage mes données dans le temps) et ce dans une feuille B.
C'est une urgence professionnelle qui motive ce message, quelqu'un pourrait-il m'expliquer la technique ?

Très grand merci d'avance à ceux qui peuvent m'aider !
Configuration: Windows XP
Internet Explorer 7.0

4 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    Pour te donner un code de copie adapté, ce serait mieux que tu déposes un modèle de classeur sur : https://www.cjoint.com/index.php
    puis tu nous mets ici le lien créé.
    0
    1. digmetos
       
      Très grand merci,

      https://www.cjoint.com/?gnp3LYKJcR

      le fichier est ci-joint, si je pouvais éventuellement vous contacter en direct ça serait bien génial !
      j'ai une véritable urgence professionnelle et ce petit bout de développement me manque
      0
  2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    J'ai bien récupéré ton fichier mais je ne vois pas bien ce que tu veux sauvegarder dans l'autre feuille et en fonction de quels critères tu vas ranger tes infos ?

    Si tu pouvais préciser un peu ton problème, ce serait plus facile.

    Si tu veux mettre de messages personnels sur ce site il faut t'inscrire et c'est gratuit mais l'avantage du forum c'est qu'il y a toujours quelqu'un qui sait répondre à ta question alors que les messages personnels sont traités si disponible.
    0
    1. digmetos
       
      Bonjour, quelques détails ci-dessous (concernant toujours le même fichier) :

      => le paramètre de "rangement" est la période (Cell D1 dans la Feuille A) cette période en l'occurrence correspond à une quinzaine; on trouvera cette valeur correspondante à la période dans la feuille B également ligne 1). L'objectif est de pouvoir donc historiser les informations chaque fois qu'on change de période et historiser les informations sélectionnées (voir ci-dessous)
      => les données à historiser par quinzaine sont:
      - Cells B23, C23, D23 dans la feuille A historisées pour chaque période dans les lignes 2,3,4 de la feuille B (ex. B23 => ligne 2 de la feuille B)
      - Cells R4 jusqu'à R19 historisées dans les lignes 5 à 20 dans la feuille B (ex. R4 => ligne 5 de la feuille B)
      à terme j'aurai plein de champs à archiver mais montrez-moi comment ça marche, je crois que par la suite j'aurai la possibilité de transposer ce mécanisme à une grande feuille !
      => l'historisation ne doit pas être automatique mais appelée par un bouton par exemple

      Merci encore,
      cordialement, Angelos
      0
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    la détermination des cellules étant précise, je t'ai modifié ton classeur : https://www.cjoint.com/?goxEOkxOz5

    Le bouton est créé où tu avais indiqué et permet de lancer la macro.

    La macro "historisation" se trouve dans le module "historisation".

    Elle recherche la colonne d'archive et si elle n'existe pas, elle la crée.
    Ensuite elle recopie, de 2 façons différentes les données de la ligne et de la colonne concernées.
    Tu peux la lancer autant de fois que tu veux mais si tu as oublié de changer la période, la précédente sera remplacée : peut-être prévoir un blocage ?

    Pour essai j'ai complété ta colonne et ajouté une période.
    Si tu changes le nom de tes onglets il faut aussi les changer dans la macro.

    En espérant que cela te permette de démarrer : bon courage !
    0
    1. digmetos
       
      Quel travail de pro !
      Très grand merci, j'y vois plus clair!
      0
  4. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonsoir digmetos, c'est sympa et si tu désires des précisions, n'hésites pas

    Comme la macro peut être une source d'inspiration pour certains futurs lecteurs, la voici
    Public Sub historisation()  ' sauvegarde période
    Dim col As Integer  ' colonne
    Dim lig As Integer  ' ligne
    Dim wh As Worksheet ' feuille historisation
    Dim wp As Worksheet ' feuille période
    Set wp = Sheets("Feuille A") ' affectation feuille période
    Set wh = Sheets("Feuille B - Historisation") ' affectation feuille historisation
    ' recherche colonne Historisation
    For col = 1 To wh.Cells.SpecialCells(xlCellTypeLastCell).Column 'dernière colonne
        If wh.Cells(1, col).Value = wp.[D1].Value Then Exit For
    ' si colonne trouvée on sort de la boucle
    Next col
    ' si colonne vide on met la valeur Historisation
    If wh.Cells(1, col).Value = "" Then wh.Cells(1, col).Value = wp.[D1].Value
    ' archivage Overall
        wh.Cells(2, col).Value = wp.[B23].Value
        wh.Cells(3, col).Value = wp.[C23].Value
        wh.Cells(4, col).Value = wp.[D23].Value
    ' archivage Progress
    For lig = 5 To 20
        wh.Cells(lig, col).Value = wp.Range("R" & lig - 1).Value    ' valeur
        wh.Cells(lig, col).NumberFormat = "0%"                      ' format
    Next lig
    End Sub
    
    0