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

Interfaçage autre langage Python Discussion :

récupérer/affecter la valeur de retour d'un msgBox éxécuté par une maco vba [Python 3.X]


Sujet :

Interfaçage autre langage Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    apprenti
    Inscrit en
    octobre 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : apprenti
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2018
    Messages : 18
    Points : 23
    Points
    23
    Par défaut récupérer/affecter la valeur de retour d'un msgBox éxécuté par une maco vba
    Bonjour à tous !

    Pour vous situer un peu : mon programme ouvre des fichiers excel.xlsm (ayant la même structure et les même macro), puis modifi des données pour le mette a jours, pour cela je dois activer une macro qui a pour rôle d'afficher ou de cacher certaines cellules.

    Pour ce faire j'éxécute en python la macro avec l'instruction ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xl.Application.Run("fileName.xlsm!modulName.macroName")
    Jusque la tout va bien, mais, cette macro commence par ouvrir une MsgBox YesNo,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If MsgBox("Souhaitez-vous ré-afficher toutes les données ?", vbYesNo, "MESSAGE") = vbYes Then
    Ce que je souhaiterai c'est répondre à cette msgBox directement dans mon programme après l'instruction qui exécute la macro, savez-vous si cela est possible ?

    Si vous avez les réponses à ces questions :
    -Est il possible de récupérer l'objet msgBox créé lors de l'exécution de la macro ?
    -Est il possible via Python de mettre à True la variable qui contient le résultat de la msgBox ?
    -Et tout simplement, est il possible de faire ce que je souhaite ?

    Quelques précisions ;
    - je ne peux/veux pas modifier la macro qui certe peut être inutile car je souhaite répondre par oui à chaques msgBox qui s'ouvrira
    - l'éxecution de la macro me retourne None
    - j'utilise python3.6 afin que win32com.client pour ouvrir les fichiers.xlsm et éxécuter la macro

    Merci d'avance pour le pris...

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    juin 2008
    Messages
    17 532
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 17 532
    Points : 30 251
    Points
    30 251
    Par défaut
    Salut,

    Citation Envoyé par antoineRp0 Voir le message
    -Et tout simplement, est il possible de faire ce que je souhaite ?
    Pour faire ce que vous souhaitez, il faut une interface.
    Donc déjà si vous ne savez pas faire cela depuis un VBA appelant votre macro, vous ne pourrez pas le faire depuis Python d'autant qu'il y a EXCEL au milieu.

    Il serait plus simple de faire un copie/coller de la macro et la modifier pour qu'elle n'ait pas besoin d'attendre la réponse utilisateur.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre à l'essai
    Homme Profil pro
    apprenti
    Inscrit en
    octobre 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : apprenti
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2018
    Messages : 18
    Points : 23
    Points
    23
    Par défaut
    Bonjour, merci beaucoup pour votre réponse ho grand célèbre Wiztricks !

    Citation Envoyé par wiztricks Voir le message
    Pour faire ce que vous souhaitez, il faut une interface.
    Donc déjà si vous ne savez pas faire cela depuis un VBA appelant votre macro, vous ne pourrez pas le faire depuis Python d'autant qu'il y a EXCEL au milieu.

    Il serait plus simple de faire un copie/coller de la macro et la modifier pour qu'elle n'ait pas besoin d'attendre la réponse utilisateur.

    - W
    Je pense, même si cela me déplait, que ma solution sera de modifier la macro... ( c'est la solution la plus simple mais c'est pas comme ça que je souhaitais résoudre mon problème.. )
    Je vais quand même essayer de chercher une solution en vba que j'exécuterai en Python, si vous avez des infos / documentations à me conseiller sur l'automatisation de réponse d'un msgBox en vba ou quelque chose qui s'en rapproche je suis preneur !
    Bonne journée à tous, je clos le sujet ce soir si pas de nouvelles.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    juin 2008
    Messages
    17 532
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 17 532
    Points : 30 251
    Points
    30 251
    Par défaut
    Citation Envoyé par antoineRp0 Voir le message
    Je vais quand même essayer de chercher une solution en vba que j'exécuterai en Python, si vous avez des infos / documentations à me conseiller sur l'automatisation de réponse d'un msgBox en vba ou quelque chose qui s'en rapproche je suis preneur !
    Il faut aller dans un forum VBA et leur demander comment automatiser le test d'un script contenant une MsgBox...
    Si çà se fait, c'est certainement pas de la même façon qu'avec Python, mais çà pourra vous donner des idées.


    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre à l'essai
    Homme Profil pro
    apprenti
    Inscrit en
    octobre 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : apprenti
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2018
    Messages : 18
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Il faut aller dans un forum VBA et leur demander comment automatiser le test d'un script contenant une MsgBox...
    Si çà se fait, c'est certainement pas de la même façon qu'avec Python, mais çà pourra vous donner des idées.


    - W
    Re :

    Après quelques coups de téléphones j'ai l'impression que la modification du code vba est inévitable...
    Je vous remercie pour ces infos/conseils, je vais demander de ce pas.

    Bonne journée et encore merci beaucoup pour les pistes !


    EDIT : Je vous met le lien de la discution dans le forum VBA si jamais elle aboutie : https://www.developpez.net/forums/d2.../#post11191625

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/05/2012, 06h55
  2. Réponses: 3
    Dernier message: 27/02/2012, 17h52
  3. affectation des valeurs de texbox en fonction du choix d'une combobox
    Par iallex dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/05/2010, 20h38
  4. Réponses: 2
    Dernier message: 14/07/2009, 08h45
  5. Réponses: 5
    Dernier message: 03/11/2007, 18h29

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