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

Résolu
arnaud.az -  
arnaud.az Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -
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 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
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   Statut Membre Dernière intervention  
 
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 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
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   Statut Membre Dernière intervention  
 
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 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour,
Merci, mais ou est votre macro... !

0
arnaud.az Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
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 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonsoir à tous,

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

eric
0
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Merci eriiic,
Pour moi c'est OK.
Salutations
0
arnaud.az Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
J'ai finis par trouver.
Merci
0
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour,
Alors c'est parfait et félicitation.

0
foo
 
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 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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   Statut Membre Dernière intervention  
 
Ah oui magnifique merci beaucoup

arnaud
0
llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
 
merci ca ma ete utile
0
arnaud.az Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
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 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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   Statut Membre Dernière intervention  
 
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 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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   Statut Membre Dernière intervention  
 
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