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 -
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.
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:
- Comment sauvegarder des donnée a chaque changement de ma macro
- Changer de dns - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Logiciel de sauvegarde gratuit - Guide
- Comment sauvegarder toutes les données de mon téléphone - Guide
- Sauvegarder favoris chrome - Guide
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 ?
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
(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.
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
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
Bonsoir à tous,
utiliser OnTime, il y a un exemple dans l'aide excel.
eric
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.
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
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
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
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
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
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.
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 :
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
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