Relancer une macro

Fermé
hakoko Messages postés 187 Date d'inscription lundi 11 mars 2013 Statut Membre Dernière intervention 21 mars 2024 - 30 août 2013 à 16:19
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 3 sept. 2013 à 04:48
Bonjour tout le monde,

j'ai une macro qui récupère les données de plusieurs fichiers. cette macro répète la même taches chaque 1 min. simplement quand je la lance le soir et que je la laisse récupérer les données, quand je revient le matin je vois qu'elle s'ai arrêté sans raison spécial. alors je souhaiterai trouver un moyen pour que la macro puisse détecter qu'il n'y a pas eu de changement pendant 2 min par exemple et qu'elle se relance automatiquement. quelqu'un aurait une idée svp.

merci
A voir également:

3 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
31 août 2013 à 04:52
Bonjour
Plutôt que de relancer la macro au bout de 2 mn parce qu'elle s'est plantée, il serait plus judicieux d'essayer de trouver pourquoi elle s'est plantée, car votre solution ne résout pas le problème.
Dans votre macro, insérez un bout de code, qui enregistre sur une feuille les fichiers traités avec heure d'ouverture et heure de fermeture, cela permettra de localiser le fichier qui fait défaut.
Autre chose: pourquoi relancer la macro toutes les 1mn, êtes-vous sûr que la récupération des données est terminée?
Pourquoi ne pas faire un programme qui tournerait en boucle avec
For i =1 to "Nbre de cycles à éxcuter"   
---- 
next i
Insérer une ligne de détection d'erreur, et si une erreur est détectée, alors stop (on arrête le programme), ce qui permet de localiser le défaut.
Essayer de commencer par suivre ces quelques conseils, peut-être que vous trouverez la réponse à vos problèmes.
cdlt
0
hakoko Messages postés 187 Date d'inscription lundi 11 mars 2013 Statut Membre Dernière intervention 21 mars 2024 3
2 sept. 2013 à 15:08
Re,

je récupère un des données chaque minute et ceci doit tourner sans arrêt car ça sert pour la supervision. En effet mon fichier Excel je lai mis en liaison DDE avec un logiciel de supervision. je ne récupère que les données les plus récentes, pour que les données les plus récentes viennent écraser les plus anciennes. je peu identifier à quelle heur il c planté car les données récupéré contiennent la date et l'heur.
la macro ne bug pas, mais s'arrêt de récupérer sans heurs fixe. je pense que ceci est du a la liaison DDE avec le logiciel de supervision. car quand je ferme le logiciel et que je coupe la liaison, la macro ne s'arrête pas. c'est pour quoi j'ai envisagé cette solution qui est détecter que les cellule ne changent pas et se relancer automatiquement.
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
3 sept. 2013 à 04:48
Bonjour
essayez ceci
Sub Démarrage()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    On Error GoTo Sortie    
Debut:
    Application.OnTime Now + TimeValue("00:02:00"), "Fermeture" 'ferme votre fichier dans 2 mn
    Ouverture 'Ouvre votre fichier de récup de données
    GoTo Debut
    Exit Sub   
Sortie:
End Sub

Sub Ouverture() 
    Workbooks.Open Filename:="votre fichier"
    Application.Wait Now + TimeValue("00:01:00") 'ferme votre fichier dans 1 mn
End Sub

Sub Fermeture()
    Application.DisplayAlerts = False
    On Error GoTo Sortie
    Windows("votre fichier").Activate
    ActiveWorkbook.Close
    Exit Sub    
Sortie:
End Sub
Explications:
on lance le prog "Démarrage". ce dernier lance le prog "Ouverture" qui lui se fermera dans 1mn, redonnant la main au fichier démarrage et le cycle recommence. En cas d'arrêt de votre fichier (autre qu'une interruption du programme) au bout de 2 mn, c'est le prog "démarrage " qui prend le relai et ferme votre fichier, et le cycle recommence.
En espérant que cela réponde à vos attentes.
bonne journée
cdlt
0