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 :

Arret inexpliqué du code


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Mars 2008
    Messages : 36
    Par défaut Arret inexpliqué du code
    bonjour

    cela fait un moment que j'essaye des tas de solution, rien a faire.

    mon code s'arrete toujours sur un vulgaire appel de cellule, sans que rien ne l'explique, et sans le moindre message d'erreur. j'ai tout tenté, je sais plus quoi inventer. des idées ?

    donc quelques bout de mon code pour illustration (excel 2010)


    je commence dès le début de ma fonction, avant toute autre chose, a m'assurer d'enregistrer dans trois variables de quoi revenir plus tard a mon point de départ.

    donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dim sh as worksheet
    dim rowcall, colcall as long
     
    set sh = workbooks(application.caller.worksheet.parent.name).worksheets(application.caller.worksheet.name)
    rowcall = application.caller.row
    colcall = application.caller.column

    ensuite il y a tout un code qui permet de mettre dans un arraw de variable de type personnel (adresse() as cellule; cellule etant mon type perso) des résultat issue de d'autre fichiers excel.
    chaque fichier est ouvert, les donnée copié, et fermé, sans faire appel ni a des "activate", ni copy, paste, ou autre. j'agis toujours uniquement sur des workbook.worksheet.cells.value directement.


    à la fin, ces résultat issue d'import doivent etre copié dans l'excel dont est issue la formule (car le tout est dans une fonction <=> s'utilise en temps que formule) à une colonne donnée, et la ligne de la formule.
    j'ai une plage range qui contient les "titre" des colonnes, j'y cherche un titre en particulier, c'est lui qui détermine la colonne. ce range s'appelle "plagesortie"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    for each cel in plagesortie
     
      if cel.value = nom then
         cl = cel.column
         sh.cells(rowcall, cl).value = adresse(i).resultat
         exit for
      end if
     
    next
     
    set sh = nothing
     
    end function
    sh.cells(rowcall, cl).value = adresse(i).resultat => le code s'arrete ici, sans raison.
    tout le reste marche, et en placant un espion, tout contient pourtant les bonnes variables.
    sh pointe bien sur le bon workbook et worksheet
    la plage est bien scanné, le "nom" trouvé et cl retourne bien alors le bon n° de colonne
    le n° de ligne est bien toujours dans "rowcall"


    alors ... quoi ????

    je sais plus quoi inventer.
    j'ai testé sans objet "sh", en faisant directement un workbook.worksheet.cells()
    avec ou sans 'application' devant
    sans rien (cells().value directement)

    je vois plus quoi faire.

    merci a tout ceux qui peuvent m'eclairer de leurs lumiere ! moi je craque

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    avec des bouts de code et sans message d'erreur, pas de solution à l'horizon !

    Vérifier ce que contient adresse(i).resultat

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Mars 2008
    Messages : 36
    Par défaut
    Bonjour.

    c'est bien le soucis. Pas de message d'erreur. Le code cesse juste d'être lu. En débug pas a pas, l'exécution s'arrête a cette ligne la. La suivante n'est jamais atteinte

    concernant mon résultat, c'est une variable double, et elle contient bien un nombre.
    par aquis de conscience j'ai tenté de mettre un chiffre directement
    sh.cells(rowcall, cl) = 18
    meme resultat

    c'est donc mon sh.cells qui provoque un "bug"; bug dont j'ignore jusqu'à la nature
    j'ai même tenté un sh.cells(cint(rowcall), cint(cl))
    meme resultat

    je seche

    quand au bout de code, je ne peut copier l'ensemble du code "comme ça" il est en partie protegé, et il est long. Ça n'aurait pas été pertinent des le premier message d'envoyer "toute la sauce"
    j'ai transmit ce qui semble de prime abord pertinent.

    d'autres idées ?

    cordialement.

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    A part vérifier les variables Sh, rowcall & cl dans la fenêtre des Variables locales vu l'utilisation de Caller sans contrôle …

    L'explication pourrait être simple : utilisation abusive d'On Error Goto ?

    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Mars 2008
    Messages : 36
    Par défaut
    Bonjour

    pas de "on error resume next", les quatres variables sh, rowcall et cl sont visiblement ok (verrifie par l'espion).

    je peu poster plus de truc du code source, mais je sais pas comment éventuellement procéder, ni d'idée ou chercher ma cause de bug ou le contourner.

    cordialement.

  6. #6
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Ne reste plus qu'à suivre le code en mode pas à pas via la touche F8 tout en contrôlant la fenêtre des Variables locales …

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

Discussions similaires

  1. [XL-2003] Arret inexpliqué avant fin d'instructions d'une macro / raisons ?
    Par clent7550 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 20/07/2011, 13h38
  2. Réponses: 3
    Dernier message: 18/06/2008, 10h38
  3. Comment arreter une animation en code ?
    Par dauphinus dans le forum Windows Presentation Foundation
    Réponses: 9
    Dernier message: 19/05/2008, 10h24
  4. "impossible d'executer le code en mode arret".
    Par deubelte dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/11/2007, 15h54
  5. quand perl s'arrete de manière inexpliquée
    Par stoyak dans le forum Web
    Réponses: 24
    Dernier message: 13/06/2006, 11h09

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