Comment sauvegarder des donnée a chaque changement de ma macro

Résolu/Fermé
arnaud.az - Modifié par arnaud.az le 18/07/2013 à 11:13
arnaud.az Messages postés 9 Date d'inscription jeudi 18 juillet 2013 Statut Membre Dernière intervention 24 juillet 2013 - 24 juil. 2013 à 14:52
Bonjour,

Je dois faire des moyennes mobiles, mes cellules sont prêtes, la macro est la, mais il faudrait qu'à chaque variations de la macro la donnée précédente sois enregistré dans la cellule suivante, et je dois faire la même chose avec un intervalle de 5 min. Quelqu'un peut pourrait m'aider ? J'avoue que je désespère un peu.

Merci d'avance.
A voir également:

12 réponses

Le Pingou Messages postés 12056 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 30 avril 2024 1 430
18 juil. 2013 à 22:01
Bonjour,
Eh bien si tout est prêt, c'est quoi qui ne fonctionne pas ?
Est-il possible de voir ce qui est prêt ?
0
arnaud.az Messages postés 9 Date d'inscription jeudi 18 juillet 2013 Statut Membre Dernière intervention 24 juillet 2013
18 juil. 2013 à 22:27
je n'arrive pas à mettre une photo mais je vais essayer de schématiser mon problème de façon claire.

(N-4) <- (N-3) <- (N-2) <- (N-1) <- (N)

En (N) j'ai une macro qui me donne des données en temps réelle. Je voudrais que toutes les 5 minutes, la donnée (N) se sauvegarde en (N-1), puis que 5 minutes plus tard la donnée (N) passe en (N-1), et que la donnée (N-1), passe en (N-2)... ainsi de suite.

J'espère que mon schémas est claire.

Salutation
0
Le Pingou Messages postés 12056 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 30 avril 2024 1 430
18 juil. 2013 à 23:04
Bonjour,
Vous pouvez mettre votre photo et la macro sur un document Word et mettre ce dernier sur https://www.cjoint.com/ et poster le lien.
0
arnaud.az Messages postés 9 Date d'inscription jeudi 18 juillet 2013 Statut Membre Dernière intervention 24 juillet 2013
18 juil. 2013 à 23:21
Merci pour les indication concernant les photos.

https://www.cjoint.com/c/CGsxss9o800

J'espère que ça pourra à comprendre.

Salutation
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Le Pingou Messages postés 12056 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 30 avril 2024 1 430
18 juil. 2013 à 23:41
Bonjour,
Merci, mais ou est votre macro... !

0
arnaud.az Messages postés 9 Date d'inscription jeudi 18 juillet 2013 Statut Membre Dernière intervention 24 juillet 2013
19 juil. 2013 à 00:14
Dans ce cas dsl, je viens de débuter sur ce sujet, la personne qui a fait le lien avec le logiciel externe que j'utilise m'a dit que c'était une macro, ou peut être est-ce moi qui ai confondu
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 215
18 juil. 2013 à 23:42
Bonsoir à tous,

utiliser OnTime, il y a un exemple dans l'aide excel.

eric
0
Le Pingou Messages postés 12056 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 30 avril 2024 1 430
18 juil. 2013 à 23:49
Merci eriiic,
Pour moi c'est OK.
Salutations
0
arnaud.az Messages postés 9 Date d'inscription jeudi 18 juillet 2013 Statut Membre Dernière intervention 24 juillet 2013
19 juil. 2013 à 10:59
bonjour,

J'ai un peu bosser hier soir après notre discutions, histoire de ne plus passer pour un ignorant.
Désormais je sais ce qu'est vraiment une macro, ce qui je pence pourrais faire avancer les choses.

Donc j'ai créer ma première macro.

Sub Copier_coller_01()
'
' Copier_coller_01 Macro
'

Range("G5").Select
ActiveCell.FormulaR1C1 = "=IT|Price!'SMI.SWI,Last'"
Range("G5").Select
Selection.Copy
Range("F5").Select
ActiveSheet.Paste
End Sub

Je tombe déjà sur un problème quand je l'exécute, il me copie la cellule donc =IT|Price!'SMI.SWI,Last , et non le nombre qui s'affiche dans la cellule.

Pouvez-vous m'aider. Merci.

Salutation.
0
arnaud.az Messages postés 9 Date d'inscription jeudi 18 juillet 2013 Statut Membre Dernière intervention 24 juillet 2013
Modifié par arnaud.az le 19/07/2013 à 11:39
J'ai finis par trouver.
Merci
0
Le Pingou Messages postés 12056 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 30 avril 2024 1 430
19 juil. 2013 à 11:50
Bonjour,
Alors c'est parfait et félicitation.

0
Bonjour

trop de code

ex:

Sub Copier_coller_01()
Range("G5").FormulaLocal = "=code_produits!B7"
Range("G5").Copy
Range("F5").PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub

A+

Maurice
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 215
19 juil. 2013 à 11:55
Bonjour,

Donc j'ai créer ma première macro.
Ca se voit que c'est la première ;-)
Il faut nettoyer le code créé par l'enregistreur. Les .select sont inutiles dans 99% des cas et très chronophages.

Tu peux raccourcir ta macro en :
Sub Copier_coller_01()
[F5] = [G5].Value
End Sub

Mais si tu veux qu(elle se lance toutes les 5 min regarde l'aide sur la méthode OnTime

eric
0
arnaud.az Messages postés 9 Date d'inscription jeudi 18 juillet 2013 Statut Membre Dernière intervention 24 juillet 2013
19 juil. 2013 à 14:56
Ah oui magnifique merci beaucoup

arnaud
0
llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
19 juil. 2013 à 13:21
merci ca ma ete utile
0
arnaud.az Messages postés 9 Date d'inscription jeudi 18 juillet 2013 Statut Membre Dernière intervention 24 juillet 2013
19 juil. 2013 à 15:43
Finalement j'ai changé pour ta solution qui m'a l'air plus simple, et aussi car, ce que je viens d'apprendre a mes dépend, qu'il faut que tout sois rassembler sous la même macro alors que j'avais tout fais séparément (même pour les copier-coller) donc j'ai tout supprimer et j'ai recommencé à zéro

Sub M_Mobile_per_5()
Application.OnTime
[D5] = [C5].Value
Application.OnTime
[E5] = [D5].Value
Application.OnTime
[F5] = [E5].Value
Aplication.OnTime
[G5] = [F5].Value
End Sub

Mais je bloque ici

Salutation

Arnaud
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 215
19 juil. 2013 à 16:06
Tu as vraiment regardé l'aide excel ??????
L'exemple donné c'est :
Notes
Utilisez Now + TimeValue(time) pour programmer une procédure à exécuter après un certain délai (à partir de maintenant). Utilisez TimeValue(time) pour programmer une procédure à exécuter à un moment précis.

Exemples
Cet exemple montre comment exécuter my_Procedure dans 15 secondes.

Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"


eric
0
arnaud.az Messages postés 9 Date d'inscription jeudi 18 juillet 2013 Statut Membre Dernière intervention 24 juillet 2013
Modifié par arnaud.az le 19/07/2013 à 16:16
Maintenant j'en suis la

Sub m_mobile_per_5()
Application.OnTime TimeValue("00:05:00")
[D5] = [C5].Value
Application.OnTime TimeValue("00:05:00")
[E5] = [D5].Value
Application.OnTime TimeValue("00:05:00")
[F5] = [E5].Value
Aplication.OnTime TimeValue("00:05:00")
[G5] = [F5].Value
End Sub

il me dit : "erreur de compilation
argument non facultatif"

En me surlignant en jaune la première ligne.
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 215
Modifié par eriiic le 19/07/2013 à 17:16
Oui, ça fait ça quand on n'en met que la moitié...
Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"

Et tu n'as pas à la relancer 4 fois, une fois suffit
Essaie avec :
Sub m_mobile_per_5()
   [D5] = [C5].Value
   [E5] = [D5].Value
   [F5] = [E5].Value
   [G5] = [F5].Value
   Application.OnTime  Now + TimeValue("00:05:00"), "m_mobile_per_5" ' relancer dans 5'
End Sub

Mais je croyais que tu voulais propager ta sauvegarde de la droite vers la gauche ? Là tu fais l'inverse. Il faudrait sans doute démarrer par [F5] = [G5].Value non ?

eric
0
arnaud.az Messages postés 9 Date d'inscription jeudi 18 juillet 2013 Statut Membre Dernière intervention 24 juillet 2013
24 juil. 2013 à 14:52
Bonjour,

Désormais tout marche correctement. Je vous remercie de votre aide si précieuse et merci Eric pour la solution sa marche nickel chrome ta remarque juste en dessous était pertinente.

Merci beaucoup.

Arnaud
0