Macro qui plante aléatoirement
Fermé
maxkun
Messages postés
52
Date d'inscription
mercredi 2 décembre 2009
Statut
Membre
Dernière intervention
2 novembre 2020
-
30 oct. 2020 à 10:12
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 2 nov. 2020 à 11:42
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 2 nov. 2020 à 11:42
A voir également:
- Macro qui plante aléatoirement
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Macro logiciel - Télécharger - Organisation
- Macro recorder - Télécharger - Confidentialité
- Explorateur windows plante - Guide
6 réponses
Mike-31
Messages postés
18346
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 novembre 2024
5 104
Modifié le 30 oct. 2020 à 11:08
Modifié le 30 oct. 2020 à 11:08
Bonjour,
Sans voir le code difficile de dire ou est le loup
déjà en début de code place une gestion d'erreur pour éviter le plantage
Sans voir le code difficile de dire ou est le loup
déjà en début de code place une gestion d'erreur pour éviter le plantage
On Error Resume Next
maxkun
Messages postés
52
Date d'inscription
mercredi 2 décembre 2009
Statut
Membre
Dernière intervention
2 novembre 2020
4
Modifié le 30 oct. 2020 à 11:11
Modifié le 30 oct. 2020 à 11:11
Oui je conçois que sans le code c'est assez compliqué, mais bon vu la longueur de celui-ci, ça n'aurait pas été simple non plus :/
J'ai pensé à mettre cette ligne, mais c'est vrai que c'est à double tranchant, si on a une "vraie" erreur, on risque de passer à coté. Mais je me demande si cela fonctionnerai vu qu'excel se ferme brutalement.
Cela ne pourrait-il pas venir d'un soucis de compatibilité ?
J'ai pensé à mettre cette ligne, mais c'est vrai que c'est à double tranchant, si on a une "vraie" erreur, on risque de passer à coté. Mais je me demande si cela fonctionnerai vu qu'excel se ferme brutalement.
Cela ne pourrait-il pas venir d'un soucis de compatibilité ?
Mike-31
Messages postés
18346
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 novembre 2024
5 104
30 oct. 2020 à 11:24
30 oct. 2020 à 11:24
Re,
possible mais si le code est accepté par intermittence je pense plutôt à une erreur
de toute façon la gestion d'erreur empêche uniquement le plantage d'Excel, ça vaut le cout de tester
possible mais si le code est accepté par intermittence je pense plutôt à une erreur
de toute façon la gestion d'erreur empêche uniquement le plantage d'Excel, ça vaut le cout de tester
maxkun
Messages postés
52
Date d'inscription
mercredi 2 décembre 2009
Statut
Membre
Dernière intervention
2 novembre 2020
4
30 oct. 2020 à 11:27
30 oct. 2020 à 11:27
Je vais tester ça, et je vous retiens au courant ;)
Merci
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
30 oct. 2020 à 12:23
30 oct. 2020 à 12:23
Bonjour à tous,
perso, je pense que mettre la poussière sous le tapis est rarement une bonne solution.
Sans mettre tout ton code, tu peux déjà mettre juste la boucle qui ouvre tes fichiers.
Ca nous inspirera peut-être pour proposer différente choses à tester.
En particulier, comme tu dis faire des calculs, une boucle qui attend leur fin avant de passer au suivant :
Quitte à rajouter 1-2 s après fermeture pour le laisser souffler un peu plus
eric
perso, je pense que mettre la poussière sous le tapis est rarement une bonne solution.
Sans mettre tout ton code, tu peux déjà mettre juste la boucle qui ouvre tes fichiers.
Ca nous inspirera peut-être pour proposer différente choses à tester.
En particulier, comme tu dis faire des calculs, une boucle qui attend leur fin avant de passer au suivant :
Do Until Application.CalculationState = xlDone DoEvents Loop
Quitte à rajouter 1-2 s après fermeture pour le laisser souffler un peu plus
eric
maxkun
Messages postés
52
Date d'inscription
mercredi 2 décembre 2009
Statut
Membre
Dernière intervention
2 novembre 2020
4
2 nov. 2020 à 10:03
2 nov. 2020 à 10:03
Bonjour Eric,
J'ai testé la solution de Mike ce matin, et cela semble avoir fonctionné, à voir sur la durée.
Je vais donc laissé comme ça pour le moment, j'ai mis la ligne "on error resume next" sur des fonctions qui ne plante jamais donc je ne prends pas trop de risque de les laisser.
Je vous refait signe en fin de semaine, pour voir si tout est ok.
Cordialement.
J'ai testé la solution de Mike ce matin, et cela semble avoir fonctionné, à voir sur la durée.
Je vais donc laissé comme ça pour le moment, j'ai mis la ligne "on error resume next" sur des fonctions qui ne plante jamais donc je ne prends pas trop de risque de les laisser.
Je vous refait signe en fin de semaine, pour voir si tout est ok.
Cordialement.
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
>
maxkun
Messages postés
52
Date d'inscription
mercredi 2 décembre 2009
Statut
Membre
Dernière intervention
2 novembre 2020
Modifié le 2 nov. 2020 à 11:47
Modifié le 2 nov. 2020 à 11:47
Si tu laisses les On Error Resume Next, ça plantera pas mais ça risque de ne pas fonctionner.
Dans un code définitif il ne doit pas y avoir d'erreur ignorée !
Pour déterminer où l'erreur se produit, il est préférable de mettre un On Error GoTo avec un Stop plutôt qu'un Resume Next qui continue l'exécution malgré l'erreur !
Dans un code définitif il ne doit pas y avoir d'erreur ignorée !
Pour déterminer où l'erreur se produit, il est préférable de mettre un On Error GoTo avec un Stop plutôt qu'un Resume Next qui continue l'exécution malgré l'erreur !
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
Modifié le 30 oct. 2020 à 13:08
Modifié le 30 oct. 2020 à 13:08
Bonjour le Fil
« Je ne peux malheureusement pas poster le code car [...] et bien trop long pour le coup, »
Si le code est trop long pour être posté c'est un mauvais code.
Dans un code bien architecturé aucune procédure ou fonction ne doit excéder 100 lignes (très exceptionnellement 200 lignes) et dans ce cas il est relativement simple de localiser la source du problème.
« Je ne peux malheureusement pas poster le code car [...] et bien trop long pour le coup, »
Si le code est trop long pour être posté c'est un mauvais code.
Dans un code bien architecturé aucune procédure ou fonction ne doit excéder 100 lignes (très exceptionnellement 200 lignes) et dans ce cas il est relativement simple de localiser la source du problème.
maxkun
Messages postés
52
Date d'inscription
mercredi 2 décembre 2009
Statut
Membre
Dernière intervention
2 novembre 2020
4
2 nov. 2020 à 10:05
2 nov. 2020 à 10:05
Bonjour Patrice,
Alors oui il est loin d’être optimisé je le conçois, après mes fonctions en soit ne sont pas spécialement longues, c'est quand mets tout bout à bout que ça commence à chiffrer.
Du coup comme dis plus haut, je laisse le sujet ouvert quelques jours pour voir si la méthode de Mike fonctionne.
Merci pour votre retour ;)
Cordialement.
Alors oui il est loin d’être optimisé je le conçois, après mes fonctions en soit ne sont pas spécialement longues, c'est quand mets tout bout à bout que ça commence à chiffrer.
Du coup comme dis plus haut, je laisse le sujet ouvert quelques jours pour voir si la méthode de Mike fonctionne.
Merci pour votre retour ;)
Cordialement.