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 :

VBA Erreur non reproductible en débogage


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 1
    Par défaut VBA Erreur non reproductible en débogage
    Bonjour,

    Mon code VBA boucle sur les lignes d'une feuille, intégre les informations de cette feuille dans des pseudo "objets" Modules de Classe, ensuite il redistribu les infos contenu dans les objets dans un planning.

    Il se trouve que en production cette execution fonctionne correctement, mis à part quelques oubli,
    c'est à dire certaines lignes de la première feuille d'ou vienne les informations sont oubliés : les informations ne se retrouvent pas dans le planning...

    Mais cette execution ne produit aucune exception, de plus en repassant les lignes dites "oubliés" seules apres cet oubli les informations s'insèrent correctement.

    Ce qui me gène le plus est le fait que lorsque je place un point d'arret pour savoir d'ou vient le problème : je ne reproduis plus cet oubli et les informations des lignes en question s'insèrent parfaitement dans le planning !

    Avez vous des pistes sur à me proposer sur ce sujet s'il vous plait ?
    Peut être est-ce un bug du langage VB, j'ai déjà entendu parler de dysfonctionnement de vb...

    Merci

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Il doit y avoir un souci dans ton code.

    J'avais rencontré le même souci à une époque, et malheureusement, la seule solution que j'avais trouvé n'était pas de faire un point d'arrêt, mais de faire du pas à pas détaillé, avec des msgbox et des debug print un peu partout pour voir quelles valeurs avaient mes variables. Vu que je bouclais sur près de 1000 lignes, ça m'a pris à peu près 1 h, mais au final il y avait bien un souci dans mon code problème de variable

    Bon courage

    Pour ton problème essaye peut-être de mettre un point d'arrêt dans ta boucle For sur la ligne sur laquelle il y a un oubli, pour vérifier les valeurs, etc...

    Après, sans ton code, ou un fichier exemple ou le problème se reproduit, on pourra pas t'aider plus
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  3. #3
    Invité
    Invité(e)
    Par défaut Bonjour,
    il arrive parfois que le code soit gourmand en ressources et ne rende plus la mains à WINDOWS pour faire le ménage dans ses page mémoires!

    1) vérifies que les allocations mémoires affectées par tes soins sont également libérées par tes soins!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    set ws=ActiveSheet
    'Traitement
    set ws=nothing
    2) n’hésites à redonner la main à WINDOWS. mais attention Microsoft préconise 1 fois pas sub:
    3) il est également possible que ton traitement soit assujetti à l'exécution d'un programme externe via la commande Shell.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Tempo(T, F)
        Dim d
        d = Now
     
        While DateDiff(F, d, Now) < T
           DoEvents
        Wend
    End Sub
    sub test
    Tempo 3, "s"
    end sub
    4) la réflexion de illight n'est pas à écarter; il m'est arriver, il m'arrive et il m'arrivera ce genre de problème.
    la solution du msgbox permet de repérer à quel niveau dans la boucle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     dim Msg as integer
    msg=smg +1
    msgbox   msg
    quand tu à repéré le N° de MSG qui bug:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if msg=10 then
    msgbox msg 'tu place un point d’arrêt [F9]
    end if
    Dernière modification par Invité ; 20/12/2013 à 11h28.

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/04/2015, 09h59
  2. [XL-2007] VBA Erreur 1004 avec sélection de colonnes non contiguës
    Par pétrin dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/09/2014, 17h53
  3. Réponses: 10
    Dernier message: 23/10/2007, 14h02
  4. Réponses: 3
    Dernier message: 27/06/2007, 11h18
  5. Réponses: 4
    Dernier message: 16/06/2006, 00h27

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