[VBS] Msgbox non bloquante

Msgbox non bloquante [VBS] - VB/VBA/VBS - Programmation

Marsh Posté le 18-08-2007 à 07:32:35    

Bonjour
 
J'ai realiser un script en VBS pour automatiser la saisie d'une partie d'un fichier excel.
j'ai un message au debut qui previent de fermer le fichier (le script l'ouvre tout seul), et un message a la fin quand tout est terminé.
 
Cependant, vu que certains passage demande des connection ftp et autre, j'aimerais pouvoir afficher un message en haut de l'ecran en grand, sans bouton, indiquant que le script est toujours en train de se derouler. une msgbox, mais qui ne bloque pas le traitement en gros.
 
Comment faire ceci ?
 
Merci.

Reply

Marsh Posté le 18-08-2007 à 07:32:35   

Reply

Marsh Posté le 19-08-2007 à 08:22:04    

Dites au moin si c'est possible ou pas, car j'ai beau chercher je trouve rien, ou alors c'est des choses qui se rapportent au VBA, mais rien en VBScript.

Reply

Marsh Posté le 19-08-2007 à 13:57:38    

Les MsgBox sont de type modal, je n'en ai pas trouvé qui fussent de type non-modal.
 
Pour infos, voici les différentes options des MsgBox :

Constante      Valeur Description  
vbOKOnly            0 Affiche uniquement le bouton OK.  
vbOKCancel          1 Affiche les boutons OK et Annuler.  
vbAbortRetryIgnore  2 Affiche les boutons Abandon, Réessayer et Ignorer.  
vbYesNoCancel       3 Affiche les boutons Oui, Non et Annuler.  
vbYesNo             4 Affiche les boutons Oui et Non.  
vbRetryCancel       5 Affiche les boutons Réessayer et Annuler.  
vbCritical         16 Affiche l'icône Message critique.  
vbQuestion         32 Affiche l'icône Demande d'avertissement.  
vbExclamation      48 Affiche l'icône Message d'avertissement.  
vbInformation      64 Affiche l'icône Message d'information.  
vbDefaultButton1    0 Le premier bouton est le bouton par défaut.  
vbDefaultButton2  256 Le deuxième bouton est le bouton par défaut.  
vbDefaultButton3  512 Le troisième bouton est le bouton par défaut.  
vbDefaultButton4  768 Le quatrième bouton est le bouton par défaut.  
vbApplicationModal  0 Boîte modale pour l'application. L'utilisateur doit répondre à la boîte de message avant de poursuivre le travail dans l'application courante.  
vbSystemModal    4096 Boîte modale pour le système. Toutes les applications sont suspendues jusqu'à ce que l'utilisateur réponde à la boîte de message.  
 
Codes de retour :
Constante Valeur Description  
vbOK     1 L'utilisateur a cliqué sur OK.  
vbCancel 2 L'utilisateur a cliqué sur Annuler.  
vbAbort  3 L'utilisateur a cliqué sur Abandon.  
vbRetry  4 L'utilisateur a cliqué sur Réessayer.  
vbIgnore 5 L'utilisateur a cliqué sur Ignorer.  
vbYes    6 L'utilisateur a cliqué sur Oui.  
vbNo     7 L'utilisateur a cliqué sur Non.


EDIT : Avec les mots clés "Progress bar VBS", Google renvoie vers des pages contenant des scripts ayant l'air interessant.


Message édité par olivthill le 19-08-2007 à 14:09:26
Reply

Marsh Posté le 19-08-2007 à 18:50:53    

c'est peut-être bête mais j'ai eu exactement le même "problème"
 
ce que j'ai fait : afficher une petite userform avec une progressbar dessus. Pendant que le code s'exécute, je mets la progressbar et le caption du form à jour. Genre
 
caption = "début du transfert"
code
caption = "transfert en cours"
code
caption = "fin du transfert"
code
 
et puis quand c'est fini, je ferme le form et fais apparaitre la msgbox de fin.
 
peut-être un peu bête mais pour moi ça marche


---------------

Reply

Marsh Posté le 19-08-2007 à 18:56:37    

et comment tu fait pour crée une userform en VBScript ?
en vba tu passe par l'applis et tu fait ton userform en graphique, mais en VBS qui tourne en stand-alone je sais pas comment on fait.

Reply

Marsh Posté le 19-08-2007 à 19:00:09    

ah oui sorry, je suis en vba moi
donc c'était bête ce que j'avais dit
Mea culpa :jap:

Reply

Marsh Posté le 19-08-2007 à 20:02:46    

arf, j'avait une faible lueur d'espoir, tu vient de l'eteindre ...

Reply

Marsh Posté le 20-08-2007 à 15:12:57    

et pkoi ne lances-tu pas ton code avant d'afficher le msgbox ?

Reply

Marsh Posté le 20-08-2007 à 15:41:46    

car le code appel une fenetre ms dos, y passe des commande, edite un fichier excel, donc si je passe ma msgbox a la fin pour dire de pas toucher, c'est un peu inutile.

Reply

Marsh Posté le 20-08-2007 à 18:13:12    

et si tu freezes l'écran le temps de faire ta manip ? :p

Reply

Marsh Posté le 20-08-2007 à 18:13:12   

Reply

Marsh Posté le 20-08-2007 à 18:51:43    

Pour afficher un message, une barre de progression ou autre,  pendant l'exécution d'un script,
on peut utiliser une fenêtre internet explorer ( dépouillée des menus par exemple )
 
Un bon exemple dans le Script Center  (technet microsoft)
http://www.microsoft.com/technet/s [...] x?mfr=true
Script Center Home > Script Repository > Scripting Techniques > Progress Bars
Track Script Progress Using Internet Explorer
 
 
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed