Comment sauvegarder des donnée a chaque changement de ma macro
Résolu
arnaud.az
-
arnaud.az Messages postés 9 Statut Membre -
arnaud.az Messages postés 9 Statut Membre -
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.
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.
12 réponses
-
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 ?
-
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 -
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. -
Merci pour les indication concernant les photos.
https://www.cjoint.com/c/CGsxss9o800
J'espère que ça pourra à comprendre.
Salutation -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
Merci, mais ou est votre macro... !
-
Bonsoir à tous,
utiliser OnTime, il y a un exemple dans l'aide excel.
eric
-
-
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. -
-
-
Bonjour,
Alors c'est parfait et félicitation.
-
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 -
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 -
-
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-
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 -
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. -
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
-
-
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