Lynkoa

VBA Solidworks,MsgBox qui se ferme automatiquement
  • Topic:
    • SOLIDWORKS

  • 3 answers
  • 110 views

By Francois Surel The 12 January 2022

Bonjour à tous,

J'ai trouvé cette ligne de commande en VBA initialement utilisée sous Excel :  (ici : https://excel-malin.com/codes-sources-vba/msgbox-qui-se-ferme-automatiquement/)

CreateObject("WScript.Shell").Popup "Contenu de la boîte de dialogue...", 5, "Titre de la boîte de dialogue"    //5 étant ici la durée théorique en secondes

afin de réaliser des macros avec des messages fugitifs (temporisation réglable).

Sous Excel ça fonctionne à peu près (la tempo n'est pas franchement respectée), mais pas sous solidworks??? la fenêtre s'affiche mais ne disparaît pas...

Y-a-t-il une alternative permettant de faire disparaitre ce message au bout de quelques secondes afin de ne pas bloquer la macro?

Y-a-t-il une fonction à activer dans solidworks pour que cette commande fonctionne?

Pour info, mes macros sont simples et ne requièrent pas (pour le moment) l'utilisation de form avec boutons.

Pouvez-vous m'aider?

Cordialement,

Thierry

Answers

Maclane | 5498 point(s)

Bonjour;

Une piste à creuser  (je n'ai pas testé). 
Sous solidworks la plupart des messages ne sont pas sous la forme : msgbox(Message, Icon, Buttons)
mais le plus souvent : SendMsgToUser2(Message, Icon, Buttons)

Cordialement.

sbadenis | 21838 point(s)

Ne fonctionne effectivement pas sous solidworks, même en activant la référence Microsoft Shell.

Le popup s'affiche mais reste jusqu'à la validation.

Peut-être une limitation du logiciel interdisant ce genre de popup qui était si désagréable dans un navigateur internet.

Je pense que le seule moyen d'afficher un message temporaire sera la solution que tu ne souhaite pas avec un form.

Francois Surel | 185 point(s)

Bonjour sbadenis,

Merci pour votre réponse.

C'est malheureusement ce que je crains, même si ce n'est pas trop compliqué à faire je trouve dommage qu'une commande "toute faite" ne fonctionne qu'à moitié sur SW2021 et qu'elle fonctionne complètement sur Excel 2013, même si la tempo n'est pas précise...

Je pense dans ce cas faire une fonction en asynchrone, à moins qu'il y ait une fonction tempo qui existe.

Cordialement.