Figer fenetre et fonction API

Signaler
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
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.
Je précise par la meme ocassion que je suis débutant sur vba donc si je dit des anerie de temps en temps soyer tolérant

8 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Bonjour,
"figer une fenêtre" (ton titre)
"figer l'écran" (tes "explications")
On a vraiment l'impression d'un pataugeage de première, à vouloir traiter et parler de choses qui t'échappent totalement, le tout dans un contexte assez paradoxal de complexité et d'innocence ...
Alors oui : nous sommes tolérants ... oui ... mais voilà tout !
Reviens lorsque tu sauras mieux décrire techniquement ce que tu cherches à faire (avec des mots qui montrent que tu sais de quoi tu parles et ce que tu veux exprimer).

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Je savais bien que tu répondrais au sujet, c'est d'ailleurs pour toi que j'ai mis cette dernière ligne (ne te sent tout de même pas flatter). Aller chercher le petit détail (fenêtre, écran) dans ce cas, ca frisse la paranoïa.

Et puis si c'était pour répondre de telle sorte à ma question, tu n'étais pas obliger de perdre ton temps. Une personne ayant atteint un certain niveau d'intelligence n'aurais tout simplement pas répondu à la question.

Mais bon ? je vais quand même r formuler pour que toutes les personnes puissent comprendre.
J'utilise un fichier Excel qui appel un autre programme avec la fonction ShowWindow et FindWindow et qui rapatrie des donnée en partie avec la fonction mousse_event. Je voudrais savoir s'il était possible de figer l'écran (ou ma fenêtre Excel et rester dessus) durant l'exécution de la macro.
Et si quelqu'un ne comprend pas, merci de se référer au 2ème paragraphe de ce poste Merci
oui bien, de poser une question constructive, dans ce cas elle pourrait aider a faire avancer les choses.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
De toutes manières :
1) la mise à jour de l'affichage dune fenêtre (contrôle ou Form) peut être bloquée par la fonction LockWindowUpdate de la librairie User32 de l'Api de Windows.
2) s'il s'agit simplement d'éviter de voir les données "importées" défiler dans une listbox (ou autre) au fur et à mesure de leur importation, rien ne t'empêche de rendre ce contrôle invisible durant toute l'importation et de le rendre à nouveau visible in fine


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Je viens de lire tes deux derniers messages. Je regrette maintenant de t'avoir répondu plus complètement.
Bonne chance.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Un dernier mot avant de t'abandonner :
-
Aller chercher le petit détail (fenêtre, écran) dans ce cas, ca frisse la paranoïa.

est très loin d'être de la paranoïa! La différence entre les deux est énorme.
- la fonction dont je t'ai parlé plus haut ne peut bloquer la mise à jour de l'affichage que d'une seule fenêtre. Un contrôle est également une fenêtre Windows. Si tu bloques la mise à jour de l'affichage de la fenêtre d'un Form, sont également bloqués tous les contrôles qu'il contient.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Je viens de lire tes deux derniers messages. Je regrette maintenant de t'avoir répondu plus complètement.


Oh à ce point ?!
Voyons ? vivons sans regret, la vie à meilleur gout comme ça.

Et si ça peut te rassurer et je suis sûr que ça te feras plaisir, mais ta proposition ne règle pas mon problème étant donné que lorsque je vais chercher des donnée dans un autre programme, j'utilise la souris (afin de sélectionner les données voulu). En désactivant le rafraichissement de l'écran, je ne retrouve plus les données que je cherche.
Du coup solution à écarter

Si quelqu'un d'autre à une proposition ?

Merci à vous
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Ah bon ! Tiens donc !
Et on te connaît toujours rien de précis sur les tenants et aboutissants !
Bref ...
De toutes manières :
En désactivant le rafraichissement de l'écran, je ne retrouve plus les données que je cherche.
Du coup solution à écarter

puis :
Si quelqu'un d'autre à une proposition ?

Ce ne saurait alors être une réponse à la ptrésente discussion, ouverte pour savoir comment figer la mise à jour d'un affichage.
Voilà !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ