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 :

Boite de dialogue de chargement [XL-2002]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 194
    Par défaut Boite de dialogue de chargement
    Bonjour, je trouvé pas mal de sources pour utiliser un UserForm et y afficher un message voir encore mieux une barre de progression, mais voilà je rencontre toujours le même problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ecranChargement.show
    Call proc_modification()
    ecranChargement.hide
    'ou bien 
    ecranChargement.ufClose()
     
    ' ce code se trouve dans la partie code de ma UserForm !
    sub ufClose()
        Unload Me
    end sub
    Ce que je voulais bien sûr c'est un écran de chargement pour montrer à l'utilisateur qu'il se passe quelque chose plutôt qu'il pense qu'Excel à planté.

    Mais voilà pour pouvoir passer à la 2ème instruction (et donc "Call proc_modification()") dans le code ci-dessus, il faut fermer la UserForm "ecranChargement" ! De plus j'ai l'impression qu'un processus s'effectue toujours si l'ont fait un UserForm.Hide !

    Merci pour vos éclaircissement.

  2. #2
    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
    Mets ton appel à la procédure proc_modification() dans l'événement Activate du UserForm ecranChargement.
    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!

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 194
    Par défaut
    Ca ne marche pas en mettant la procédure "proc_modification" dans l'événement Activate du UserForm !

    Complément d'information : j'ai décidé d'utiliser une TextBox (pour la compatibilité) avec une incrémentation de ce caractère "|" à chaque itération.
    Ce que je voulais faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ' Dans la UserForm
    Private Sub UserForm_Activate()
        TextBox1.Text = ""
        flagLoading = False
        Call proc_modification
     
        Do While (flagLoading = False)
            TextBox1.Text = TextBox1.Text & "|"
            If (Len(TextBox1.Text) >= 68) Then
                TextBox1.Text = ""
            End If
        Loop
        Unload Me
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ' Dans un module
    Public flagLoading As Boolean
     
    Public Sub proc_modification()
        ' Début traitement
        '....
        ' Fin traitement
        flagLoading = True
    End Sub

  4. #4
    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
    Bonjour,

    Ta boucle de "patience"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
       Do While (flagLoading = False)
            TextBox1.Text = TextBox1.Text & "|"
            If (Len(TextBox1.Text) >= 68) Then
                TextBox1.Text = ""
            End If
        Loop
    doit se trouver dans ta procédure proc_modification().
    Mais attention, pas sous forme de boucle autonome mais les instructions qu'elle contient doivent se trouver dans la boucle principale de ton traitement.
    Ne pas oublier de préfixer le nom de la TextBox du nom de l'UserForm.
    Un Repaint et un DoEvents après les modifications dans l'UserForm sont une bonne idée...
    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!

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 194
    Par défaut
    Au contraire, si tu lit bien mon code je souhaite en faire une boucle autonome car je trouve cela très sale de mettre des "TextBox1.Text = TextBox1.Text & "|" " à plusieurs endroit de mon code !

    Ce que je veux c'est
    1- une UF se lance avant la procédure "proc_modification()", avec un textbox qui fera office de barre de progression.

    2- la procédure "proc_modification()" est lancée et la progression s'effectue sous forme d'une boucle sans fin qui s'arrête si la procédure "proc_modification()" a défini le flag "flagLoading" (variable public) à "True".

    3- enfin la UF se ferme avec le "Unload Me".

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu.!!
    bonjour a tous

    si j'ai bien compris il y a deux userform un pour la sorte de progress bar
    et l'autre je ne sais pourquoi

    déjà tes deux userform tu les met a"nom userfom.show 0"

    ensuite dans ta boucle qui fait grimper ta pseudo progressbar
    met le nom de l'userform devant les textbox=textbox&"blablabla

    puisque tu utilise un variable booleenne je suppose que tu a une boucle infini jusqu'à temp que la variable revienne a false

    donc tu ne peu plus rien faire d'autre
    la solution!!!!
    le "doevents dans ta boucle

    cela ralenti un peu la boucle lorsque tu fait autre chose mais c'est la seule solution


    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 27/08/2012, 14h36
  2. Afficher une boite de dialogue pendant le chargement d'une page
    Par ledisciple dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/09/2011, 14h56
  3. Boite de dialogue chargement fichier
    Par Tsukaasa dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 07/07/2008, 14h55
  4. [Upload] Chargement de fichiers & boite de dialogue
    Par falcon dans le forum Langage
    Réponses: 11
    Dernier message: 23/11/2005, 11h21
  5. Comment cree une boite de dialogue parcourir
    Par kenshi dans le forum MFC
    Réponses: 5
    Dernier message: 06/01/2003, 10h30

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