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-E]Actualisation


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 129
    Par défaut [VBA-E]Actualisation
    Bonjour,

    Voila j ai un souci lors de l'execution d'une macro.
    Cette derniere en appele d'autres et affiche entre 2, un userform afin de faire patienter l'utilisateur.
    Le probleme c'est que la macro s'arrete tant que je n'ai pas ferme le userform.
    Comment faire pour que la macro continue a s'effectuer pdt ce tps ?

    Voila mon code actuel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    call tri
    classement.show
    call conclusion
    Que faire ?

    Merci d avance

  2. #2
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Salut!
    Regarde l'aide sur "DoEvents".
    Ça devrait te donner des idées.
    Ou fais une recherche avancée sur ce forum sur cette fonction.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 129
    Par défaut
    J'ai lu l'aide sur le Doevents mais j vois vraiment pas comment faire.

    Tu peux m'aider stp ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 129
    Par défaut
    J ai inseré un DoEvents mais je ne vois pas de chgt...

    Je dois tjs cliquer pour poursuivre la macro...
    ou attendre que ma barre de progression ai atteind 100 % avant de passer a la macro suivante...

    comment faire donc ?

    Merci

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    monformulaire.recalc

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 129
    Par défaut
    cad ?

    ca fait quoi ?

    c'est a quel userform que je dois faire recalc ?

  7. #7
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    il faut que tu appelle ta macro conclusion dans l'événement Activate de ta form 'Patientez' et que tu rajoute des DoEvents dans ta macro conclusion ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Sub Conclusion
     For i = 1 To 800000
       Label1 = i
       DoEvents
     Next
     
    end sub
     
    Private Sub UserForm_Activate()
     Conclusion
     Hide
    End Sub

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 129
    Par défaut
    J ai fait ce que tu viens de me dire, en effet ma macro ne s'arrete pas.
    Par contre, la progress bar n'avance plus et reste bloquée à 0.

    Sais tu comment remedier a ca ?

    Merci d avance

  9. #9
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    elle est animée comment ta progress bar ?

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 129
    Par défaut
    par le code suivant

    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
    35
    Sub LaMacroQuiEstLongue()
    Top20.Show
        'If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub
    Application.ScreenUpdating = False
    Top20.Repaint
        Sheets("Feuil1").Select
        Dim Counter As Integer
        Dim RowMax As Integer, ColMax As Integer
        Dim r As Integer, c As Integer
        Dim PourcentageEffectue As Single
     
     
        Cells.Clear
        Counter = 1
        RowMax = 200
        ColMax = 25
        For r = 1 To RowMax
            For c = 1 To ColMax
                Cells(r, c) = Int(Rnd * 1000)
                Counter = Counter + 1
            Next c
            Sleep (1000)
            PourcentageEffectue = Counter / (RowMax * ColMax)
            Call UpdateProgress(PourcentageEffectue)
        Next r
     
    End Sub
     
    Sub UpdateProgress(PourcentageEffectue)
        With Top20
            .FrameProgress.Caption = Format(PourcentageEffectue, "0%")
            .LabelProgress.Width = PourcentageEffectue * (.FrameProgress.Width - 10)
            .FrameProgress.Repaint
        End With
    End Sub


    Je voudrais pouvoir effectuer lamacroquiestlonge (donc avoir la barre de progression qui avance) et dans le meme tps que la macro lancée par l'activation du top20 via top20.show se poursuive...

    J'essaye differents trucs et ca marche tjs pas

    Merci d avance

  11. #11
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    pas trés clair ton code sans les balise [Code ] [\Code ] ..!!

    sinon enléve tes Sleep !!! ...

    rajoute des DoEvents() dans tes différentes boucles ( DoEvents permet de laisser "la main" au systéme..pour )

    n' ouvre pas ta fenêtre top 20 ... dans ta macro longue, mais appelle fais le contraire comme je te l'ai montré plus haut et appelle ta macro longue dans le activate du top20 ...

  12. #12
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    rajoute un me.recalc avant les do events

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 129
    Par défaut
    J suis en train d'essayer...

    Mais y a deja un souci: il me dit pour l'utilisation de me.recalc :

    "erreur de compilation"
    "Utilisation incorrecte du mot clé me"

    Que dois je faire ?

  14. #14
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par random
    rajoute un me.recalc avant les do events
    ? il n'y as pas de procedure recalc sur les userform d'excel ! ( c'est bien du VBA sous excel ?)

  15. #15
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Citation Envoyé par bbil
    ( c'est bien du VBA sous excel ?)
    D'où l'intérêt des tags [VB], [VBA] dans les titres.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

Discussions similaires

  1. [VBA-E] Actualiser un Graphique aprés Placement des données
    Par beekeep dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 27/02/2015, 15h43
  2. Réponses: 1
    Dernier message: 19/02/2007, 20h18
  3. [VBA-E] actualiser une feuille
    Par nattyman dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/08/2006, 12h10
  4. [VBA-A] Actualisation de champ
    Par microman dans le forum VBA Access
    Réponses: 2
    Dernier message: 23/05/2006, 17h11
  5. [VBA-E]actualisation d'un tableau dynamique par macro
    Par illight dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/04/2006, 17h37

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