XL 2010 Faire patienter l'utilisateur avec le défilement dans un webbrowser

  • Initiateur de la discussion Initiateur de la discussion Gnedea
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Gnedea

XLDnaute Nouveau
Bonjour les experts du forum.
J'ai deux problèmes avec mon application.
Lorsque je clique sur le bouton démarrer le défilement du webbrowser caché fonctionne et je n'arrive pas à écrire le symbole @ demandé obligatoirement.
Le deuxième est que si le problème de l'écriture du symbole @ est résolu, on clique maintenant sur le bouton masquer ou afficher case. A ce niveau le défilement du webbrowser s'arrête, or je voudrais que le défilement continu pendant que la macro s'exécute pour faire patienter l'utilisateur.
Est ce qu'il y a un moyen pour le faire ?
S'il y a une autre solution je suis preneur.
Merci pour votre aide.
Je joins mon fichier
 

Pièces jointes

  • Screenshot_20250104-160541.png
    Screenshot_20250104-160541.png
    136.2 KB · Affichages: 12
Solution
Hello,
le souci c'est que le webbrowser ne se rafraichit pas dans ta boucle et il y a un temps mort de 1 seconde avec ton Wait.
L'idée c'est d'accélerer la boucle à 40 ms en utilisant un Sleep :
VB:
#If VBA7 Then
   Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
#Else
   Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#End If

Private Sub CommandButton1_Click()
Dim x As Integer
label1.Left = 24
label1.Top = 66
Label2.Left = 48
Label2.Top = 42
Label4.Left = 87
Label4.Top = 67

WebBrowser1.Left = 82
WebBrowser1.Top = 44

CASE_COMPTE_A_REBOUR.Left = 68.05
CASE_COMPTE_A_REBOUR.Top = 67

'===================== COMPTE A REBOUR ======================================...
Hello,
le souci c'est que le webbrowser ne se rafraichit pas dans ta boucle et il y a un temps mort de 1 seconde avec ton Wait.
L'idée c'est d'accélerer la boucle à 40 ms en utilisant un Sleep :
VB:
#If VBA7 Then
   Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
#Else
   Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#End If

Private Sub CommandButton1_Click()
Dim x As Integer
label1.Left = 24
label1.Top = 66
Label2.Left = 48
Label2.Top = 42
Label4.Left = 87
Label4.Top = 67

WebBrowser1.Left = 82
WebBrowser1.Top = 44

CASE_COMPTE_A_REBOUR.Left = 68.05
CASE_COMPTE_A_REBOUR.Top = 67

'===================== COMPTE A REBOUR ======================================
CASE_COMPTE_A_REBOUR.Caption = 20
Dim COMPTE_A_REBOUR As Integer
With UserForm1
For x = CASE_COMPTE_A_REBOUR.Caption * 25 To 0 Step -1
Sleep 40: DoEvents ' 40 ms
If x Mod 25 = 0 Then
    CASE_COMPTE_A_REBOUR.Caption = x / 25
End If
Next
End With
'============================================================================
If CASE_COMPTE_A_REBOUR.Caption = 0 Then

End If

End Sub

Decompte.gif


Peut-être que patricktoulon aura une meilleure idée.

Ami calmant, J.P
 
Dernière édition:
Hello,
le souci c'est que le webbrowser ne se rafraichit pas dans ta boucle et il y a un temps mort de 1 seconde avec ton Wait.
L'idée c'est d'accélerer la boucle à 40 ms en utilisant un Sleep :
VB:
#If VBA7 Then
   Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
#Else
   Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#End If

Private Sub CommandButton1_Click()
Dim x As Integer
label1.Left = 24
label1.Top = 66
Label2.Left = 48
Label2.Top = 42
Label4.Left = 87
Label4.Top = 67

WebBrowser1.Left = 82
WebBrowser1.Top = 44

CASE_COMPTE_A_REBOUR.Left = 68.05
CASE_COMPTE_A_REBOUR.Top = 67

'===================== COMPTE A REBOUR ======================================
CASE_COMPTE_A_REBOUR.Caption = 20
Dim COMPTE_A_REBOUR As Integer
With UserForm1
For x = CASE_COMPTE_A_REBOUR.Caption * 25 To 0 Step -1
Sleep 40: DoEvents ' 40 ms
If x Mod 25 = 0 Then
    CASE_COMPTE_A_REBOUR.Caption = x / 25
End If
Next
End With
'============================================================================
If CASE_COMPTE_A_REBOUR.Caption = 0 Then

End If

End Sub

Regarde la pièce jointe 1211117

Peut-être que patricktoulon aura une meilleure idée.

Ami calmant, J.P
Merci Jurassic c'est
Génial ça fonctionne normalement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour