IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

VBS trop lent


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2015
    Messages : 28
    Points : 16
    Points
    16
    Par défaut VBS trop lent
    Bjr à toutes et à tous
    J'ai créé le fichier VBS suivant :

    Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim xlapp, classeur
    Set xlapp = CreateObject("Excel.Application")
    Set classeur = xlapp.Workbooks.open("C:\MesProgramme\LeBon.xlsm")

    Excel se lance sans que l'utilisateur le voit et bien sûr il ne peut pas l'utiliser.
    A l'ouverture de LEbon.xlsm une userform remplit l'écran et l'utilisateur pourra effectuer tout un travail mais rien que ce qui est prévu dans l'userform.

    Parfait donc sauf que, sauf que .... il faut environ 25 secondes avant que l'userform n'apparaisse. C'est long, bien trop lent à tel point que parfois je me demande si j'ai bien lancé le VBS. J'en arrive à me dire que les utilisateurs vont se poser bien des questions...

    Ma question : est-il possible de rajouter une ligne à la fin du prg VBS de lancement, une ligne qui affichera, par exemple, en milieu du bureau : "Patientez ..." et que ce message s'efface au bout de 23, 24 secondes

    Ou bien une barre de progression en % avec le texte "Chargement..."

    Avec tous mes remerciements anticipés

  2. #2
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    Pouvez-vous nous joindre si c'est possible le fichier Excel concerné ?
    Peut-être que vous pouvez lancer la macro de l'userform sans ouvrir Excel ?
    https://wellsr.com/vba/2015/excel/ru...sing-vbscript/

  3. #3
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2015
    Messages : 28
    Points : 16
    Points
    16
    Par défaut Vbs trop lent
    que faut il comprendre par : vous pouvez lancer la macro de l'userform sans ouvrir Excel???
    En fait je ne lance pas une macro. Mon prg est prevu pour lancer l'userform qui par Inizialise termine le travail.

    Non c'est vraiment un affichage msdos ou une barre de chargement en % que je recherche

    merci à toi

  4. #4
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut
    Citation Envoyé par Yumat Voir le message
    que faut il comprendre par : vous pouvez lancer la macro de l'userform sans ouvrir Excel???
    Désolé, je ne peux pas vous répondre sans avoir vu le code du VBA !

  5. #5
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2015
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    comme je l'ai ecrit plus haut il n'y a pas de code vba. C'est inizialise de l'userform qui met tout en place

  6. #6
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2015
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    Si j’écris mon programme comme ceci :
    Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim xlapp, classeur
    Set xlapp = CreateObject("Excel.Application")
    Set classeur = xlapp.Workbooks.open("C:\MesProgramme\LeBon.xlsm")
    Wscript.echo "Patientez...."

    Le message « Patientez… » n’apparait que lorsque je quitte mon application LeBon.s=xlsm.

    Si je l’écris comme ceci :
    Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim xlapp, classeur
    Set xlapp = CreateObject("Excel.Application")
    Wscript.echo "Patientez...."
    Set classeur = xlapp.Workbooks.open("C:\MesProgramme\LeBon.xlsm")

    Le message apparait de suite mais tant que je ne valide pas par OK LeBon.xlsm ne se charge pas. Tout est à l’arrêt .
    En fait je souhaite que pendant que LeBon.xlsm se charge, le message soit à l’écran sans rien bloquer. La solution 1 quoi.
    Possible ?

  7. #7
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    Peut-être dans votre cas il faut essayer la méthode Popup

    Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim xlapp, classeur,Title
    Title = "My Application"
    Set Ws = CreateObject("Wscript.Shell")
    Set xlapp = CreateObject("Excel.Application")
    Set classeur = xlapp.Workbooks.open("C:\chemin\fichier.xlsm")
    Ws.popup "Veuillez svp patienter un peu le chargement de l'application est en cours....",10,Title,48

  8. #8
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2015
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    merci hackoofr on avance, on avance j'ai recopié ta proposition de la manière suivante :
    Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim xlapp, classeur,Title
    Title = "My Application"
    Set Ws = CreateObject("Wscript.Shell")
    Set xlapp = CreateObject("Excel.Application")
     
    Ws.popup "Veuillez svp patienter un peu le chargement de l'application est en cours....",5,Title,48
     
    Set classeur = xlapp.Workbooks.open("C:\MesPRG\MonPRG.xlsm")

    J'ai passé le temps d'affichage de 10 à 5
    Le message est bien là pour alerter l'utilisateur c'est super et il disparait au bout de 5 secondes.
    L'ideal serait bien sur de pouvoir laisser ce message pendant une vingtaine de secondes mais que dans le même temps, l'application se charge. Je constate qu'avec ta solution, le temps de chargement de mo prg, après la disparition du message, est plus court
    Peut etre qu'un autre erudit vas nous trouver la solution recherchée
    Mais en attendant; merci à toi car je considère que tu m'as fait faire un bon pas en avant

  9. #9
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut
    Et si tu changes le temps d'attente de 10 à 20 ce passe quoi dans ton cas ?
    sinon si ton classeur n'est pas confidentiel, alors poster moi une copie par message privé pour le tester sur mon environnement

  10. #10
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2015
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    J'ai essayé toutes les combinaisons possibles avec les deux derniers chiffres. Dans tous les cas de figure il faut 17 secondes pour charger l'appli après la fin du message. Mais cette solution est déjà fort intéressante.
    Pour le reste jette un coup d'oeil à ta messagerie
    bonne soirée et encore merci

  11. #11
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    La solution qui me semble la mieux est d'afficher ce message d'attente par Excel (en supposant que c'est l'ouverture du fichier qui est longue et pas d'Excel lui même).
    Il doit l'afficher dès que le fichier est lancé, charger les données les fichiers ... bref s'initialiser, et le clôturer avec d'afficher ton interface.
    Il faut s'orienter vers un popup sous forme de userform et l'afficher de façon non modal (non bloquante pour le programme).

    https://www.excel-pratique.com/fr/as...userform_modal
    https://www.excel-downloads.com/thre...n-modal.14377/

    Voir aussi :
    https://wellsr.com/vba/2016/excel/cr...r-spreadsheet/

Discussions similaires

  1. Convolution trop lente...
    Par progfou dans le forum Traitement d'images
    Réponses: 6
    Dernier message: 05/08/2006, 11h44
  2. [Eclipse] Editeur de code trop lent
    Par Benzeghiba dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 10/11/2005, 14h02
  3. boucle while trop lente
    Par atouze dans le forum Access
    Réponses: 17
    Dernier message: 15/06/2005, 16h35
  4. [SAGE] ODBC trop lent
    Par tileffeleauzed dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 14/11/2004, 09h56
  5. Envoi de mail trop lent
    Par MASSAKA dans le forum ASP
    Réponses: 3
    Dernier message: 15/10/2004, 10h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo