archivage de données

MAELSWIM

XLDnaute Nouveau
bonjour à tous,
je souhaiterai archiver des données dans un tableau.
En effet, dans le fichier ci joint en feuille3, il y a un tableau que je mettrai à jour tous les jours. Je cherche une macro pour que lorsque j'appuie sur le bouton archiver, les données dans ce tableau s'inscrivent dans le tableau recap (en fonction de la date).
Exemple Si j'appuie sur le bouton archiver, la données de la case D6 irait s'archiver si on est le 20/03/2012 en feuille hiso stk en B2.

Est ce que quelqun pourrait m'aider SVP? je suis arrivé au bout de mes compétences excel :)

bonne journée
 

Pièces jointes

  • Classeur1.xlsx
    93.9 KB · Affichages: 344
  • Classeur1.xlsx
    93.9 KB · Affichages: 300
  • Classeur1.xlsx
    93.9 KB · Affichages: 317

Vorens

XLDnaute Occasionnel
Re : archivage de données

Salut,

Une proposition en pièce jointe.

J'ai modifié ton fichier en page d'archive. pas top d'ecrire à l'avance les date. tu clic le bouton et sa va archiver. y'a une sécurité pour pas archiver plusieur fois par jours

Meilleures salutations
 

Pièces jointes

  • Prob_MAelSwim.xlsm
    101.6 KB · Affichages: 575

MAELSWIM

XLDnaute Nouveau
Re : archivage de données

je vous remercie bcp, mais je ne comprends pas le fonctionnement de l'archivage.
Et j'aimerai étendre la chose, c'est à dire que la colonne B4 de la feuille3 s'archive en colonne F etc...
comment puis je developper ensuite mon tableau svp...

bonne soirée

merci bcp
 

Vorens

XLDnaute Occasionnel
Re : archivage de données

Re,


Alors l'archivage est fait par une macro (Alt + F11 pour accèder au code)

Le principe de fonctionnement est que le code vérifie si un archivage n'as pas déja été effectuer a la date du jours (pour éviter les doublons), ensuite, j'incrémente automatiquement ton tableau avec les valeurs souhaitées. Pour complémentée ton tableau, je vais t'expliquer comment modifier la macro (elle est très très très très simple).

Donc Alt F11 pour accèder au code et tu copie les lignes suivante et les modifies (Cette macro n'est pas optimisée toussa toussa mais pour l'application qu'on fait la, il n'y a vraiment pas besoin de se les briser plus que sa).

Alors dans "ThisWorkbook" (dans l'arboréscence à gauche)

Tu va trouver le code suivant:

Code:
Sub Archive()

dateAuj = Sheets("Feuil3").Range("A1").Value

If Sheets("HISTO STK").Range("A:A").Find(what:=dateAuj) Is Nothing Then

Fin = Sheets("HISTO STK").Range("A" & 65535).End(xlUp).Row + 1

Sheets("HISTO STK").Range("A" & Fin).Value = Sheets("Feuil3").Range("A1").Value
Sheets("HISTO STK").Range("B" & Fin).Value = Sheets("Feuil3").Range("D6").Value

Else

MsgBox ("Vous avez deja archivé aujourd'hui")

End If

End Sub

Dans ce code, c'est les lignes suivante qui archive les infos:

Code:
Sheets("HISTO STK").Range("A" & Fin).Value = Sheets("Feuil3").Range("A1").Value
Sheets("HISTO STK").Range("B" & Fin).Value = Sheets("Feuil3").Range("D6").Value

A présent, pour ajouter des informations, rien de plus simple, tu copie la ligne par exemple celle là:

Code:
Sheets("HISTO STK").Range("B" & Fin).Value = Sheets("Feuil3").Range("D6").Value

et tu la colle en dessous des deux autres. Puis, tu modifie les infos suivante

Sheets("HISTO STK").Range("B" & Fin).Value = Sheets("Feuil3").Range("D6").Value

En rouge, la colonne dans le tableau d'archive ou tu veux que la nouvelle information soit stockée.

En vert, l'endroit dans ta feuille principale ou l'information à archiver se trouve.

Donc dans la pratique, pour réprendre ta dernière question si on veux archiver B4 en colonne F il suffit d'ecrire

Code:
Sheets("HISTO STK").Range("F" & Fin).Value = Sheets("Feuil3").Range("B4").Value

Se qui donne au finale le code suivant (j'ai add quelque commentaire ste fois)

Code:
Sub Archive()

'Récup la date du jour
dateAuj = Sheets("Feuil3").Range("A1").Value

'Test si la on à deja archivé une fois
If Sheets("HISTO STK").Range("A:A").Find(what:=dateAuj) Is Nothing Then

'Trouve la fin du tableau d'archive (num de ligne)
Fin = Sheets("HISTO STK").Range("A" & 65535).End(xlUp).Row + 1

'Copie les informations souhaitée
Sheets("HISTO STK").Range("A" & Fin).Value = Sheets("Feuil3").Range("A1").Value
Sheets("HISTO STK").Range("B" & Fin).Value = Sheets("Feuil3").Range("D6").Value
Sheets("HISTO STK").Range("F" & Fin).Value = Sheets("Feuil3").Range("B4").Value

Else

'Si on a deja archivé une fois, un message d'erreur apparait
MsgBox ("Vous avez deja archivé aujourd'hui")

End If

End Sub



Voila, j'éspere avoir été assez précis pour t'aider =)

Meilleures salutations
 

MAELSWIM

XLDnaute Nouveau
Re : archivage de données

bonjour,
tout d'abord merci de votre réponse mais un problème demeure. Lorsque la date change la macro ne va pas automatiquement à la ligne suivante(qui correspond au jour d'après) pouvez vous eclairer ce point SVP?
 

Vorens

XLDnaute Occasionnel
Re : archivage de données

Re,


Ah ? Chez moi elle va à la ligne suivante a moin que je n'ai pas compris votre problème, voir screen en pièce jointe

Screen 1) aujourd'hui

screen 2) aujourd'hui +1 jour donc demain

On peut voir que le tableau s'incrémente correctement

(Avez vous modifier la macro et si oui pouvez vous la copier sur un post avec les balises code (outil du forum)

Meilleures salutations
 

Pièces jointes

  • Screen.zip
    223.1 KB · Affichages: 290

Discussions similaires

Réponses
2
Affichages
590

Statistiques des forums

Discussions
312 502
Messages
2 089 033
Membres
104 010
dernier inscrit
Freba