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

Macros et VBA Excel Discussion :

Figer l’écran et fonction API


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2012
    Messages : 20
    Par défaut Figer l’écran et fonction API
    Bonjour,

    Je souhaiterais savoir s’il est possible de figer l’écran pendant qu’une macro fonctionne sachant que celle-ci utilise des fonctions API.
    Je précise, j’utilise des fonctions API pour rapatrier à partir d’un autre logiciel un certain nombre de donnée sur mon fichier Excel. Pour ce faire j’utilise entre autre les fonctions mouse_event, sendInput, FindWindow, ShowWindow qui interagissent directement avec l’environnement virtuel de windows (je ne sais pas si on peut vraiment dire ça).

    Dons serait-il possible de figer l‘écran durant que ma macro bascule vers un autre logiciel, les rapatrie et les copie dans mon fichier Excel ?

    Merci

    P.S : Pour vous devancer, l’instruction Application.ScreenUpdating = False ne marche apparament pas lorsqu’l’on utilise les fonctions API

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu
    bonjour

    intéressante ta question
    surtout quand tu parle de rapatriement de données d'une autre application par les api

    alors je suppose que tu veux bloquer l'affichage pour ne pas voir ton écran scintiller de mille feux(fenêtres)qui s'affiche

    en ce qui concerne le blocage je n'est pas d'idée la dessus

    par contre lorsque ta macro ouvre une autre application

    par le find windows tu a son handle

    tu pourrais donc faire un
    X représentant un chiffre ou une variables correspondant a un état cité ci dessous

    SW_HIDE 0 Cache la fenêtre et en active une autre.
    SW_MAXIMIZE 3 Agrandit la fenêtre.
    SW_MINIMIZE 6 Réduit la fenêtre et active la prochaine (dans l'ordre des tâches windows).
    SW_RESTORE 9 Active et affiche la fenêtre à sa taille et position initiales.
    SW_SHOW 5 Active et affiche la fenêtre.
    SW_SHOWMAXIMIZED 3 Active et agrandit la fenêtre.
    SW_SHOWMINIMIZED 2 Active et réduit la fenêtre.
    SW_SHOWNA 8 Identique à SW_SHOW sauf que la fenêtre n'est pas activée.
    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2012
    Messages : 20
    Par défaut
    Salut patrick et merci de ta réponse.
    Oui c’est tout à fait ça, je souhaite bloquer l’affichage de l’écran pour que l’utilisateur ne voit pas défiler les différents écrans qui apparaisse pour chercher les données à rapatriée.
    Merci pour les infos sur l’affichage du ShowWindow, je les utilise déjà dans mon programme (SHOWMAXIMIZED pour trouver l’information toujours au même emplacement sachant que j’ai programmée la souris pour aller les chercher).
    J’attends d’autre proposition pour figer l’affichage.

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    d'accord si j'ai bien compris
    tu utilise la virtualisation du mouvement de la souris pour cliquer sur les endroit des applications que tu déclenche par macro
    dans ce cas la tu es marrons car si tu ne rafraichit pas l'écran tes déplacements (souris) ne seront pas pris en compte
    d'autant plus que tu maximise la fenêtre

    a mon avis tu dois trouver un autre moyen d'aller chercher ses données que le faire avec le déplacement de la souris


    n'ayant pas plus de précision sur ton fichier je ne peut pas t'en dire plus
    si ce n'est que c'est certainement IMPOSSIBLE " dans cette configuration

    tu ne peut même pas masquer les fenêtre par un espèce de second fond d'écran puisque tu te sert des déplacement souris

    désolé

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2012
    Messages : 20
    Par défaut
    Dans l’état actuelle des choses, je n’ai pas trouvée d’autre moyen de rapatriée les donnée.
    Enfaite pour être plus précis je vais chercher des donnée dans une application programmée sous TeemTalk, et sur celle-ci, je n’ai pas trouvé le moyen de sélectionner les donnée par un autre moyen que celui de la souris (malheureusement le raccourcis clavier pour sélectionner des donnée ne marche pas ).

    De plus je suis débutant en programmation vba, du coup je n’ai pas de grande connaissance sur ce qu’il est possible de faire.

    Mais si je comprends ce que tu me dis, si je désactive le rafraichissement de l’écran je ne pourrais plus sélectionner de donnée ? Ne serait-il pas possible de désactiver le rafraichissement de celui-ci en laissant tourner la macro derrière comme si on avait un « affichage fictif ».
    Dans ce cas comment serait-il possible de faire dans mon cas ?

    Merci encore

    Edit : je viens de voir avec la fonction LockWindowUpdate mais apparament, ca n'a pas grand effet, la fenetre de l'application sur laquel je vais chercher mes données apparait toujours à l'écran

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut
    bonjour

    Mais si je comprends ce que tu me dis, si je désactive le rafraîchissement de l’écran je ne pourrais plus sélectionner de donnée ? Ne serait-il pas possible de désactiver le rafraîchissement de celui-ci en laissant tourner la macro derrière comme si on avait un « affichage fictif ».
    Dans ce cas comment serait-il possible de faire dans mon cas ?
    réfléchissons un peu :
    tu utilise le déplacement virtuel et certainement son click pour aller chercher
    des données dans ton application

    ce qui veux dire que la fenêtre de cette dite application doit etre forcement présente sinon tu clique dans le vide
    rien que çà devrait répondre a ta question
    il n'est donc pas possible de faire un "hide " sur cette application
    tu le comprend bien

    cela dit si tu utilise une seul application externe tu utilise mal le bouclage
    fichier exel----->application externe et vice et versa

    regarde si tu peut pas eliminer des passages de l'un a l'autre en recuperant les données dans des variables tableau ou autre et les reinscrires toute en meme temps
    ca ne devrait pas etre trop difficile
    tu remplace les adresse cellule = blalala par mavariable= blabla
    ensuite quand tu a tou sheets(machintrux).cells(celle que tu veux)=mavariable(0,ou 1 ou 2 ect....)
    ce la dit en l'etat j'imagine bien ton code purré elle doit tourner la becanne


    regarde dans la faq il y a plusieur facons de recupérer des données ailleur

    je vais en faire autant de mon coté

    re
    il semblerais que teamtalk soit une marque(groupe) et non pas une seule application et il semblerais qui soit spécialisés dans la communication entre plusieurs applications

    parti de la je ne vois pas ce que fait vba dans l'histoire

    je suis de plus en plus curieux
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

Discussions similaires

  1. Connaitre le processus qui appelle une fonction API
    Par RazielReaver dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 28/05/2006, 13h56
  2. MASM et XP : fonctions API inconnues
    Par naplot dans le forum x86 32-bits / 64-bits
    Réponses: 1
    Dernier message: 27/03/2006, 03h41
  3. Fonction API
    Par margilb dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/07/2002, 11h11
  4. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07

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