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 :

Bouclage infini d'un code [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 23
    Par défaut Bouclage infini d'un code
    Bonjour,

    J'ai juste un petit problème de compilation dans une procédure VBA due à la procédure de cloture de celle ci.

    Je m'explique, dans ce code:

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Private Sub CommandButton2_Click()
    Dim oldStatusBar As String
    Dim WshP As Worksheet, WshI As Worksheet,
     
    ' Cache des données lorsque Excel travaille
    With Application
        oldStatusBar = .DisplayStatusBar
        .DisplayStatusBar = True
        .StatusBar = "En Cours..." 'dans la barre d'etat
        .Calculation = xlManual
        .MaxChange = 0.001
        .ScreenUpdating = False
    End With
     
    Set WshP = Sheets("tata")
    Set WshI = Sheets("toto")
     
    'Procédure.....
    '
    '
    '
     
    With Application
        .ScreenUpdating = True
        .StatusBar = oldStatusBar
        .Calculation = xlAutomatic
        .MaxChange = 0.001
    End With
     
    'Fin de procédure et libération des variables
    Set WshP = Nothing
    Set WshI = Nothing
     
    End Sub

    La partie finale:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    With Application
        .ScreenUpdating = True
        .StatusBar = oldStatusBar
        .Calculation = xlAutomatic
        .MaxChange = 0.001
    End With
     
    'Fin de procédure et libération des variables
    Set WshP = Nothing
    Set WshI = Nothing
     
    End Sub

    genere une boucle infinie. Je suppose que ce n'est qu'une petite bétise à corriger dans le code mais je ne la trouve pas

    au pire des cas je supprime tout, ca met un peu plus de temps à compiler mais ca peut aller aussi...

    D'avance, merci à vous

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Je ne vois aucune boucle dans ton code.
    Si ton problème se situe au niveau de la remise en place des calculs automatique regarde si tu n'as pas une référence circulaire.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 23
    Par défaut
    Salut,

    je te remercie. Du coup mon problème doit venir d'ailleurs...

    C'est bizarre, parce que lorsque j'execute mon programme en mettant des points d'arrets et que je mets un point d'arret juste au dessus de cette procédure, l'exécution se fait rapidement mais lorsque je mets le point d'arret sous cette procedure, mon CPU tourne à 100% et met un temps fou à s'arreter !

    Donc, j'imaginais qu'un problème venait de là ?

    Pour le moment je suis en train de retoucher au programme en lui même du coup je verrai à la fin si le problème persiste...

    Je ne coche pas encore le "résolu" pour le moment :p

    Merci bien !

  4. #4
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut

    Tu n'aurais pas un grand nombre de cellules contenant des formules par hasard?
    Si la réponse est oui, ton problème est lié au passage en mode manuel puis automatique du Calculation. Lorsque tu repasses en auto, il recalcule toutes les formules.

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 23
    Par défaut
    Salut

    Effectivement, oui..... , j 'ai pas mal de vlookup et autres copiers/collés spéciaux.

    Dans ce cas il n'y a rien à faire de particulier hormis simplifier au maximum le programme ?

    Est-il préferable de laisser le mode automatique dès le début pour une execution chronologique du programme ? ou je laisse comme c'est et puis c'est tout ?

  6. #6
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut
    Le mieux je pense serait de nous présenter ton code et d'expliquer ce qu'il fait, il existe peut-être des simplifications à faire.

    En fonction de la complexité du fichier, il y a une partie "Conception" dans le forum, où tu peux demander de l'aide pour étudier la meilleur solution en fonction de l'organisation que tu souhaites mettre en place.
    Par exemple et si j'ai bien compris, ton code place des formules dans le tableau, la question est de savoir si ton tableau, une fois remplie par ta macro, subira des modifications qui justifierais l'utilisation des formules?

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

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

Discussions similaires

  1. [MySQL-5.1] Bouclage infini sur requête simple
    Par kmchen dans le forum Requêtes
    Réponses: 3
    Dernier message: 09/09/2014, 16h37
  2. répéter à l'infini un bout de code javascipt
    Par sebastien2975000 dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 11/04/2014, 20h40
  3. Réponses: 1
    Dernier message: 26/11/2009, 20h31
  4. [AJAX] Code capable de gérer un nombre infini de fonctions
    Par Orvinfait dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/08/2008, 10h17
  5. Diminuer la taille d'un code et probleme boucle infini
    Par Alucard9800XT dans le forum MATLAB
    Réponses: 3
    Dernier message: 11/06/2007, 11h42

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