Historisation des données Excel

Résolu/Fermé
Digmetos - 12 juin 2008 à 21:52
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 15 juin 2008 à 23:47
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 !
A voir également:

4 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708
12 juin 2008 à 23:44
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
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
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708
13 juin 2008 à 23:33
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
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
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708
14 juin 2008 à 23:38
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
Quel travail de pro !
Très grand merci, j'y vois plus clair!
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708
15 juin 2008 à 23:47
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