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 :

Mon code s'arrête sans raison


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Mon code s'arrête sans raison
    Bonjour,

    J'ai un problème que je comprend pas, mon code s'arrête
    tout seul, sans afficher de message de bug et sans que j'ai mit
    de points d'arrêt, quelqu'un pourrait il m'aider s'il vous plait, merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Function dhaut(ByVal elem As Variant, _ 
    ByVal col As Long, ByVal ldeb As Long, ByVal lfin As Long) 
    Dim i As Long: i = ldeb 
    Do 
    If elem < Cells(i, col).Value Then 
    Cells(i - 1, col).Value = elem: Exit Function 
    End If 
    Cells(i - 1, col).Value = Cells(i, col).Value" ' c'est à cette ligne qu'il s'arrête tout seul sans afficher de bug, ni de boite de dialogue, il arrête juste l'exécution comme s'il y'avait un point d'arrêt, alors qu'il n'y en pas" 
    i = i + 1 
    If i > lfin Then 
    Cells(lfin, col).Value = elem 
    Exit Function 
    End If 
    Loop 
    End Function

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonsoir.

    Il est pas trop beau ce code!

    Tu as écrit une fonction qui ne renvoie rien. Pourquoi pas une procédure sub?
    Tu fais une boucle Do Loop avec un compteur de ldeb à lfin. Pourquoi pas une boucle For ... Next?
    Tu t'adresses directement aux cellules de la feuille active. Il serait plus propre d'avoir une instance de la feuille de calcul et de faire Ton code n'est pas indenté (mais c'est peut-être parce que tu as omis les balises de code.
    Quelles sont les valeurs des arguments quand tu as le pb?

    Voilà. Tu peux faire ce ménage. Si ça ne donne rien, tu pourras joindre un classeur simplifié pour illustrer le pb.


    Cordialement,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut ne marche toujours pas
    j'ai déjà essayé ce dont tu parles, mais ça ne marche toujours pas, je vois vraiment pas d'où vient le problème. il n’y a pas de bug, mais il s'arrête tout seul à cette ligne, ci joint un fichier, avec la fonction.

    Merci de votre aide.
    Fichiers attachés Fichiers attachés

  4. #4
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonsoir.

    Tu as écris une fonction qui ne renvoie rien, et tu l'appelles d'une cellule de feuille. Ce n'est pas bien.

    En plus cette fonction fait des écritures dans des cellules de la feuille, ce qui n'est pas autorisé dans Excel : une fonction appelée dans une formule de cellule ne peut pas modifier d'autres cellules. Le code s'arrête à la première tentative d'écriture.

    Je ne sais pas exactement ce que tu veux faire mais comme cela ce n'est pas possible.

    Tu expliques ce que tu cherches à faire et on cherchera une méthode.

    Cordialement,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

Discussions similaires

  1. Ne parviens pas à copier mon code dans Word sans perdre les couleurs
    Par nini_python dans le forum Général Python
    Réponses: 8
    Dernier message: 11/04/2021, 12h08
  2. Une boucle dans une proc stock s'arrête sans raison
    Par eric.bryan dans le forum Développement
    Réponses: 6
    Dernier message: 12/06/2014, 17h01
  3. [XL-2007] Mon code VBA arrête après Worksheet.copy
    Par Rank dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/06/2013, 20h52
  4. Réponses: 3
    Dernier message: 18/06/2008, 10h38
  5. Un alert() en plus et mon code fonctionne, sans il foire :|
    Par narnou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/03/2006, 13h44

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