Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1690 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  UserForm et Barre de progression [Résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

UserForm et Barre de progression [Résolu]

n°1983881
GohanSSj2
Posté le 14-04-2010 à 13:10:50  profilanswer
 

Bonjour à tous,
 
J'ai créé un Userform dans lequel j'ai ajouter une barre de progression microsoft (version 6.0)
J'ai donc un UserForm1 contenant:
- un Fram1 contenant lui-même:
        - un Label1 (pour afficher le traitement en cours)
        - une ProgressBar1
 
Dans le code de mon Userform1 j'ai ceci:
[ccp]Private Sub UserForm_Initialize()
 
    With Me.ProgressBar1
        .Min = 0
        .Max = 41
        .Value = 0
    End With
     
End Sub[/cpp]
Au debut de ma macro j'affiche ma UserForm avec

Code :
  1. UserForm1.Show


A chaque étape de ma macro j'ajoute avant:

Code :
  1. UserForm1.Label1 = "Mon Etape"


et à la fin de l'étape

Code :
  1. UserForm1.ProgressBar1.Value = UserForm1.ProgressBar1.Value + 1


 
Mais ma fenêtre de bougeait pas et restait au début (avec "Label1" au lieu de "Mon Etape" ).
J'ai donc utilisé:

Code :
  1. UserForm1.Repaint


 
pas d'effet,
 
j'ai mis ce dernier code entre :

Code :
  1. Application.ScreenUpdating = True
  2. UserForm.Repaint
  3. Application.ScreenUpdating = False


 
Sans effet
 
Tout ce que je peux faire c'est prendre ma UserForm avec ma souris et la bouger pour m'amuser a la dupliquer partout :D
A part ça lorsque je clic sur le coin superieur droit pour fermer mon UserForm, ma macro s'execute (je ne sais pas si je ferme la UserForm pendant le traitement ou alors si Excel attend que je ferme la UserForm pour executer la macro.
 
C'est quoi l'astuce ????
 
un petit bout de mon code pour ceux qui demanderaient :

Code :
  1. UserForm1.Show
  2. ' Remplacement des points par des virgules
  3. UserForm1.Label1 = "Remplacement des points par des virgules - Etape longue"
  4. UserForm1.Repaint
  5. Range("A:K,M:N,P:AH,AJ:AZ" ).Select
  6. Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, SearchOrder _
  7.         :=xlByColumns, MatchCase:=False
  8. UserForm1.ProgressBar1.Value = UserForm1.ProgressBar1.Value + 1
  9. UserForm1.Repaint


Message édité par GohanSSj2 le 03-05-2010 à 13:53:21
mood
Publicité
Posté le 14-04-2010 à 13:10:50  profilanswer
 

n°1983891
GohanSSj2
Posté le 14-04-2010 à 13:29:52  profilanswer
 

Bon je vais me répondre à moi-même:
 
Il faut rajouter vbModeless aprés UserForm1.Show
et ajouter UserForm1.Repaint aprés chaque mise à jour pour actualiser la barre.
J'en ai mis aprés les UserForm1.ProgressBar1.value +1
et les UserForm1.Label1 = "Mon  Etape"  
 
Voilou en espérant que ça aide d'autres gens

n°1983892
GohanSSj2
Posté le 14-04-2010 à 13:31:47  profilanswer
 

Plus explicitement
 

Code :
  1. UserForm1.Show VbModeless
  2. UserForm1.Label1 = "Mon  Etape"
  3. UserForm1.Repaint
  4. MACRO
  5. UserForm1.ProgressBar1.Value = UserForm1.ProgressBar1.Value + 1
  6. UserForm1.Repaint


 
voilou

n°1984153
Arcbitre
J'aime ben ça moi, c'est bon!
Posté le 15-04-2010 à 09:18:36  profilanswer
 

Salut,
 
  Un petit DoEvents dans la boucle permet au système de rendre la main, afin de réactualiser les affichages, par exemple.
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  UserForm et Barre de progression [Résolu]

 

Sujets relatifs
[résolu] Undefined index[Résolu] Héritage de classe, récupérer attribut de la classe parent
Liste déroulante dans userform[Résolu] Class et function
[Résolu] Arbre "logique" > PDAG & Co.[résolu] Nom de variable dans la variable de $_session
[Résolu] Récupérer une information avec un parser[RESOLU] Requete SQL avec variable dynamique sous MS-DOS
[Resolu] Détail d'un fichier sous DOS 
Plus de sujets relatifs à : UserForm et Barre de progression [Résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR