IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

"code execution has been interrupted"


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Points : 2
    Points
    2
    Par défaut "code execution has been interrupted"
    bonjour,

    je dévellope une userform sous excel 2007 et le probleme c'est que lorsque je l'execute, régulièrement l'execution s'arrete et affiche le message "code execution has been interrupted" avec 4 choix : continue, debug, end et cancel.

    si je fais debug, j'arrive sur une ligne de code totallement anodine et différente a chaque fois. si je presse F8 pour executer la ligne en question, elle passe sans souci.

    si je clic sur continue, l'execution reprend son court comme si de rien n'etait jusqu'a ce que le meme message s'affiche pour une autre ligne.

    j'ai essayé toutes les solutions trouvées sur le net et aucune ne marche.

    le plus déroutant, c'est que la macro marche tres bien sous un excel 2003 ou un 2000.

    si quelqu'un a une solution a ce probleme je suis preneur

    cordialement

  2. #2
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Salut,
    j'ai eu une fois une problème qui semblait similaire. Après réflexion, c'était une sorte de bufferisation de touches d'interruption qui intervenait de manière aléatoire dans mon code, aussi bizarre soit-il.

    Solution : fermer tout et rebooter.

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut coldfuneral et le forum
    Sans plus d'infos et ne connaissant pas 2007, des idées
    - tu déclares les variables correctement ou en "variant" ?
    - Changement de nature de variables
    - Un élément extérieur vient perturber excel
    Mais sans code, sur une "panne" aléatoire, même une boule de cristal propre ne peut fourmir une approche de solution
    A+

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Points : 2
    Points
    2
    Par défaut je ne pense pas que ce soit ca
    bonjour

    1) mes variables sont déclarées explicitement et aucune n'est "variant"

    2) j'ai deja tenter de tout éteindre et de rebooter, rien n'y fait. mais effectivement, c'est le meme message que lorsqu'on fait ctrl + break

    3)j'ai mis mon code dans le zip qui est joint

    c'est un fichier un peut lourd car en crous de dévellopement et qui plus est par quelqu'un qui ne maitrise pas tous les rouages de VBA, donc soyez indulgent


    en gros, excel importe le fichier "messages.log" (pour ce faire lui fournir le chemin dans la feuille acceuil)

    il recupere ensuite case par case des information contenue dans message log sur des joueurs et des actions afin de faire des statistiques.

    pour la userform, je veux faire des graphiques avec des statistiques cumulées de tous les matchs récupérés. le moyen le plus simple que j'ai trouvé pour faire ca, c'est de crer pour chaque joueur un fichier xls avec l'historique de tou les matchs dedans et de générer tous les graphiques que j'ai besoins pour les exporté en gif. pour le moment les seul graphiques dispo sont blitz et block.

    si vous avez des questions, remarques ou commentaires. dites le moi. et surtout si vous trouvez d'ou vient cette ********** interruption

    bonne journée
    Fichiers attachés Fichiers attachés

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut coldfuneral
    vais pas me pencher dessus plus avant (j'ai pas Excel 2007), mais peut-être une idée ;
    il recupere ensuite case par case des information contenue dans message log sur des joueurs et des actions afin de faire des statistiques.
    importation + traitement case par case + pannes aléatoires : le problème ne pourrait-il venir de l'importation ?
    Je ne connais pas ce genre de macro, mais, personnellement sur un problème de ce style, j'importerais en bloc sur une feuille temporaire pour m'affranchir des problèmes de communication, puis je traiterais à partir de cette feuille prise comme source, puis je la supprimerais.
    Mais comme je le précise, je ne me suis pas penché dessus.

    Maintenant que les infos sont disponibles, de meilleurs que moi t'aideront sans aucun doute.
    A+

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Points : 2
    Points
    2
    Par défaut pour plus de detail
    en fait la premier chose que je fais, c'est que j'ouvre le fichier messages.log dans un nouveau document excel. je copie sont intégralité (jusqu'a 5 ou 6000 lignes) sur une feuille du fichier excel d'ou j'ai lancé la macro. en suite je ferme le fichier messages.log.

    a partir de la fait un "for each cell in range("A1:Ax") avec x le nombre de lignes. puis je recupere au fur et a mesure les informations dont j'ai besoin dans deux tableau : team(x,y,z) et stat(i,j,k,l).

    j'ecris ensuite un certain nombre d'info dans mon classeur pour pouvoir initialiser la userform.

    enfin, a chaque recuperation du fichier messages.log, un classeur portant le nom de chaque joueur est créer ou mis a jour en ajoutant une ligne correspondant au stat du match qui vient d'etre importé. avant de fermé le classeur du joueur en cours, j'en profite pour générer tous les graphiques dont j'ai besoin et les exprote en giff pour que le chargement dans la userform soit plus rapide.

    voila voila

    vu que tout ce passe au sein d'excel, je pensait ne pas avoir de probleme de communication entre fichier....

    mais peut etre que quelqu'un confirmera ta version des faits :p

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut coldfuneral
    Juste une précision : ton erreur est toujours dans la même macro, où elle apparaît aléatoirement dans une procédure quelconque ?
    (comme tu parlais de 2007, j'avais pas chargé le fichier)
    A+

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Points : 2
    Points
    2
    Par défaut salut
    alors en faite la macro marche normallement sur différente version d'excel (et d'ailleur ca fait parti du cahier des charges si je peux dire)

    et ce qu'il ce passe, c'est que l'erreur se produit toujours au meme endroit.

    par exemple sur un "end if" qui finit une boucle ou sur un "L = ....range...xlup" ou un truc du genre qui permet de recuperrer la derniere ligne non vide d'une colonne, ..., ....

    le truc c'est que si j'ajoute une ligne en lieu et place du "end if" par exemple "j = j". donc un truc anodin, a ce moment la l'erreur se produit sur la ligne "j=j" et non plus sur le "end if" qui se trouve juste apres....

    alors peut etre que je sature la tampon memoire de excel avec trop d'informations et qu'il s'arrete pour finir ces opérations. le code lui meme ne lui posant pas de probleme.

    bref.... cette erreur (ou plutot interruption) est génante parce qu'incompréhensible puisque non directement lier au code exécuter. d'ailleur j'ai fait un test : j'ai executer tout le code en pas a pas en appuyant en permanence sur F8, et la le message n'apparait jamais.... parce que l'execution est plus lente et donc le tampon ne sature pas. enfin c'est la seule explication que je vois..... et je n'ai pas de solution. j'ai meme essayé de faire des pause dans l'execution du code pendant 1 ou 2 seconde (via un timer) mais ca ne resout pas le probleme...

    merci a toi de t'y intéressé en tout cas
    a+

  9. #9
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut coldfuneral
    quelle macro ? (nom module, macro) Que j'y jette un cil
    A+

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    et en fait voici la liste des endroits ou ca bloque :

    1) dans le module recup_log : a la ligne juste apres la commande workbook open pour l'ouverture du fichiers "messages.log"
    2) dans le module sheets : a la ligne juste apres la commande workbook open
    3) dans le module sheets : sur le "end if" fermant le bloc ou se trouve la commande de l'erreur 2)
    4) dans le module sheets : sur le activeworkbook.close a la fin du module


    apparemment le probleme intervient donc des que j'ouvre ou ferme un autre fichier dans excel. ca t'aide ?

    5) dans le module sheets : de maniere aléatoire sur l'une des ligne au debut du module du type "Sheets(TEAM(1, 0, 0)).Range("AA" & (i + 3)).Value ="

    ce qui cette fois met a mal ma téhorie sur la gestion des autres classeurs puisque la feuille Sheets(TEAM(1, 0, 0)) fait parti du classeur initial....

    un dernier truc, si tu est sous excel 2000, 2002, 2003, dans la feuille de controles, il faut changé xlExcel9598 en xlExcel9795 (je me suis trompé ) et le selectionner dans le menu deroulant de la feuille acceuil.

    ouais je sais que c'est pas conviviale, mais c'est une version temporaire en cours de developpement ca se fera automatiquement dans la version final.

    a+

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Points : 2
    Points
    2
    Par défaut yessssssssssssss !!!!
    bon, apparemment j'ai trouvé la cause de cette erreur.

    je ne comprend toujours pas pourquoi ca marche avec certaines version d'excel et pas avec d'autre mais bon : ce sont les mysteres d'excel et de l'informatique

    la cause etait donc la suivante :
    dans ma userform, j'ai plusieur listbox et combobox avec des evennements de types change()

    le probleme etait le suivant :
    prenons une listbox et une combobox.
    le contenu de la listbox dependait de la valeur de la combobox et inversement via l'evenement change(). ce qui genere une boucle infinie.
    lorsque le code s'en rend compte il stope la boucle et affiche le message d'erreur en question.
    lorsque l'on choisi continue, les valeurs de la listbox et de la combobox sont alors fixées et donc l'evenement change n'existe plus. le code reprend son cour jusqu'a ce que la valeur de la listbox ou de la combobox change et que la boucle infinie recommence....

    maintenant ca marche tres bien, mais que ce fut difficile de comprendre ce qu'il se passait. surtout avec un message aussi laconique

    en tout cas merci a tous ceux qui se sont penchés sur mon probleme et nottament Gorfael

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Augmenter la hauteur du div/span de la balise "code"
    Par Djakisback dans le forum Evolutions du club
    Réponses: 10
    Dernier message: 24/01/2009, 14h31
  2. [VBA Excel] code execution has been interrupted
    Par eagleleader dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 31/08/2007, 11h46
  3. Check this out : Aerith source code has been released
    Par bbclone dans le forum AWT/Swing
    Réponses: 17
    Dernier message: 06/07/2006, 18h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo