XL 2010 Créer une textbox animée

jaggerjack

XLDnaute Nouveau
Bonjour,

Je cherches à appuyer sur un bouton d'un premier userform (contenant une barre de progression)qui ferait évoluer la barre de progression et qui ouvrirait un second userform qui lui afficherait un message du genre veuillez patienter avec 3 points de suspension qui apparaitraient jusqu'à être au nombre de 3 et disparaitraient ensuite pour recommencer.

Actuellement je suis obligé de cacher le userform avec la barre de progression pour avoir le second userform affiché et il n'incrémente les points seulement quand le fichier excel n'est pas actif.

Voici le code :

Private Sub CommandButton1_Click()
UserForm1.Hide
UserForm2.Show vbModeless
Dim j As Integer

While UserForm1.TextBox1.Width <> 192
For j = 1 To 6
UserForm2.TextBox1.Value = "Please wait"
Application.Wait (Now + TimeValue("0:00:01"))
UserForm2.TextBox1.Value = "Please wait."
Application.Wait (Now + TimeValue("0:00:01"))
UserForm2.TextBox1.Value = "Please wait.."
Application.Wait (Now + TimeValue("0:00:01"))
UserForm2.TextBox1.Value = "Please wait..."
Application.Wait (Now + TimeValue("0:00:01"))
UserForm1.TextBox1.Width = UserForm1.TextBox1.Width + 32
Next j
Wend
End Sub

Je vous joint également le fichier au cas ou

Merci d'avance
 

Pièces jointes

  • TEST.xlsm
    18.4 KB · Affichages: 26

Dranreb

XLDnaute Barbatruc
Bonjour.
Je ne comprends pas trop la logique de ce que vous essayez de faire.
Mais si ça vous intéresse, j'ai une excellente barre de progression utilisable partout où on connait le nombres de passages prévus dans une boucle, voire un nombre d'étapes dans un code qui descend tout droit. C'est un UserForm non modal piloté essentiellement par deux procédures d'un module standard. Il faudrait donc cacher un UserForm depuis lequel on voudrait les utiliser s'il était, lui, modal.
 

jaggerjack

XLDnaute Nouveau
Concrètement ce que j'essaye de faire c'est d'afficher un message "please wait..." dans un premier userform qui dépendrais de la valeur du width de la barre de progression du second userform.

Donc pour le code utilisé, je dis que tant que la barre de progression n'a pas atteint un width de 192, alors on affiche différents messages dans la label (avec plus ou moins de points pour donner une impression d'animation) et ensuite incrémenter le width par 32 (la boucle s'arrêtera donc dès que le width aura atteint les 192 => 32 * 6 = 192 donc 6 itérations.

Mon code fonctionne plus ou moins maintenant mais le label ne veut pas s'actualiser tant que le fichier Excel n'est pas en arrière plan ( donc tant que je n'ai pas cliqué ailleurs que le fichier excel).

Je dois donc trouver un moyen de rafraichir/actualiser le label ou le userform contenant le label afin d'afficher chaque texte de manière fluide pour pouvoir donner cette impression d'animation.

Ex:

Please wait ensuite Please wait. ensuite Please wait.. ensuite Please wait... et on recommence pour la prochaine itération jusqu'à arriver à un width de 192.

Je me répète beaucoup mais j'espère que vous avez mieux compris mon problème.
 

jaggerjack

XLDnaute Nouveau
Merci pour votre document mais malheureusement je n'y trouves pas mon bonheur.

Je vais vraiment simplifier à fond cette fois :

Je veux que le label de mon userform affiche "please wait..." de manière animée avec les points qui apparaissent petit à petit et dès que les trois points sont apparus, qu'ils disparaissent ensuite pour recommencer (Un truc que l'on voit assez souvent lors de chargements). Je saurais me débrouiller ensuite pour adapter le reste.

Merci d'avance pour votre aide
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 853
Membres
103 975
dernier inscrit
denry