Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

WebBrowser durant exécution macro

Patricia25

XLDnaute Nouveau
Bonjour le Forum !
Décidément je ne peux pas me passer de vous !
Voilà mon problème :
Durant l'éxécution de ma macro, je fais apparaitre un userform indiquant l'heure actuelle (label2) et l'heure de fin d'éxécution(label3) de la macro. Dans ce userform, il y a également un gif animé (dans WebBrowser2). Le problème est que lorsque je lance la macro, les affichages des labels sont blancs et le gif ne s'affiche pas. Le tout s'affiche correctement que lorsque la macro est finie. Avez vous une idée de résolution ? Voici mon code :

Code:
Private Sub Démarrer_Click()
Application.ScreenUpdating = False
CommandButton1.Visible = False
WebBrowser2.Visible = True
Dim nh, nm, ns
    nh = Hour(Now())
    nm = Minute(Now())
    nm1 = Minute(Now()) + 8
    ns = Second(Now())

Label1.Caption = "Traitement en cours..."
Label2.Caption = "Il est"
Label3.Caption = "La màj finira aux environs de"
TextBox1.Value = TimeSerial(nh, nm, ns)
TextBox2.Value = TimeSerial(nh, nm1, ns)

WebBrowser2.Refresh
Call Test ' à modifier par MacroGO
WebBrowser2.Refresh

'WebBrowser2.Visible = False
CommandButton1.Caption = "Terminer"
CommandButton1.Visible = True
Label1.Caption = "Traitement Terminé"
Application.ScreenUpdating = True

End Sub

Private Sub UserForm_Initialize()
Label1.Caption = "Cliquer sur Démarrer pour lancer la mise à jour"
CommandButton1.Caption = "Annuler"
WebBrowser2.Visible = False
   Dim Gif As String
   Gif = "H:\\Copie d'écran\progression.gif"
   WebBrowser2.Navigate Gif

End Sub

Merci
 

Cousinhub

XLDnaute Barbatruc
Re : WebBrowser durant exécution macro

Bonsoir,

A tout hasard, colle quelques DoEvents, au petit bonheur la chance....

Par exemple :

Code:
...
...
DoEvents
WebBrowser2.Refresh
DoEvents
Call Test ' à modifier par MacroGO
DoEvents
WebBrowser2.Refresh
DoEvents
.....

Il y en a peut-être en trop, à toi de tester....

Bonne soirée
 
G

Guest

Guest
Re : WebBrowser durant exécution macro

bonjour,

Hello Bh²

@Patricia, comme BhBh et en plus déplacer les Application.ScreenUpdating :

Code:
Application.ScreenUpdating=False
Call Test '
Application.ScreenUpDating=True
A+
A++KawaLabas
 

Patricia25

XLDnaute Nouveau
Re : WebBrowser durant exécution macro

Bonjour bhbh et Hasco !
J'ai suivi vos deux conseils !

Effectivement maintenant l'affichage des labels et textBox sont corrects, mais le gif ne s'anime qu'une fois l'exécution de la macro terminée.

Y aurait'il une solution complémentaire pour le webbrowser ?

Voici la code modifié (ça peut toujours servir à d'autre !)

Code:
Private Sub Démarrer_Click()

CommandButton1.Visible = False
WebBrowser2.Visible = True
Dim nh, nm, ns
    nh = Hour(Now())
    nm = Minute(Now())
    nm1 = Minute(Now()) + 8
    ns = Second(Now())

Label1.Caption = "Traitement en cours..."
Label2.Caption = "Il est"
Label3.Caption = "La màj finira aux environs de"
TextBox1.Value = TimeSerial(nh, nm, ns)
TextBox2.Value = TimeSerial(nh, nm1, ns)

DoEvents
WebBrowser2.Refresh
DoEvents
Application.ScreenUpdating = False
Call Test ' à modifier par MacroGO
Application.ScreenUpdating = True
DoEvents
WebBrowser2.Refresh
DoEvents

'WebBrowser2.Visible = False
CommandButton1.Caption = "Terminer"
CommandButton1.Visible = True
Label1.Caption = "Traitement Terminé"


End Sub
 

Cousinhub

XLDnaute Barbatruc
Re : WebBrowser durant exécution macro

Re-,

A tout hasard....

En enlevant les Refresh???????

Tu commentes les lignes :

Code:
WebBrowser2.Refresh

pour voir.....

(Pour commenter, tu mets un apostrophe devant)

Vraiment, à tout hasard
 

Patricia25

XLDnaute Nouveau
Re : WebBrowser durant exécution macro

Aïe aïe aïe !! C'est toujours pareil Bhbh !
Je t'avourais que je suis à cours d'idée, même après avoir fouillé dans le forum de long en large

Après ce n'est que visuel, mais ça permet de faire joliement patienter !
 

Patricia25

XLDnaute Nouveau
Re : WebBrowser durant exécution macro

Bonjour Fo_rum !

Ta solution est la bonne : j'ai intercalé entre chaque ligne de code un DoEvents et ça fonctionne ! Je te remercie beaucoup

Et merci également à ceux qui ont pris le temps de se pencher sur ce petit... mais costaud problème !

Bonne journée à tous !
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…