begin process at 2013 05 24 03:58:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBA

 > 

fenetre grise lors d'un basculement sur une autre appli


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

fenetre grise lors d'un basculement sur une autre appli

mercredi 3 octobre 2012 à 13:35:35 | fenetre grise lors d'un basculement sur une autre appli

SSelim

Bonjour, encore un autre problème sur excel 2010

voilà, dans le cadre d’un projet, je suis amené à utiliser une macro vba qui me permet de passer d’Excel vers une autre application (programmé sous TeemTalk) afin de rapatriée des données.
Pour ce faire j’ais utilisée les API de Windows (fonction FindWindows).
Néanmoins la macro étant amené à être utiliser à de nombreuse reprise sur une courte période, j’ai remarqué qu’à partir d’un certain moment la fenêtre de l’application appeler beugger (son emplacement sur l’écran se grise, le retour sur Excel a du mal et surtout le rapatriement de l’information voulu ne se fais plus)
Merci de votre aide

ci-joint mon code :

Sub Appelxxxxx()
Dim hwnd As Long

hwnd = FindWindow(vbNullString, "xxxxxxx")
SetForegroundWindow hwnd
DoEvents
Sleep 200
ShowWindow hwnd, SW_SHOWMAXIMIZED
DoEvents
Sleep 200
End Sub

PS : Sans les deux tempo le problème est identique, l'écran se grise et la macro beug
mercredi 3 octobre 2012 à 17:03:16 | Re : fenetre grise lors d'un basculement sur une autre appli

cmarcotte

La même question trois fois en deux jours, avec un sujet différent à chaque fois pour être sûr d'attirer les lecteurs.


PASSAGE-EXCEL-VERS-AUTRE-APPLICATION

SENDKEYS-CRTL-DROIT.

FENETRE-GRISE-LORS-BASCULEMENT-SUR-AUTRE-APPLI.


Faut croire que c'est urgent
mercredi 3 octobre 2012 à 21:32:02 | Re : fenetre grise lors d'un basculement sur une autre appli

banana32

Membre Club
Bonsoir,

SetForegroundWindow, ShowWindow renvoient des booléens : as-tu vérifié ce qu'elles renvoient ainsi que la valeur du handle (hdwn) ?
mercredi 3 octobre 2012 à 21:42:11 | Re : fenetre grise lors d'un basculement sur une autre appli

ucfoutu

Membre Club
Bonjour,
contrairement au hdc (le handle d'un contexte de dispositif), le hwnd (handle de la fenêtre elle-même) ne risque pas de changer "en cours de route" tant que la fenêtre est "ouverte".
Il est extrêmement malsain de recalculer ce handle hwnd à chaque appel de la procédure Appelxxxxx.*
Il n'est pas très adroit de nommer ce handle par hwnd (qui est une propriété des objets de VB6). Vaudrait mieux l'appeler autrement (par exemple : le_hwnd)
Ce handle (le_hwnd, donc) devrait être déclaré en type long soit en variable générale, soit en variable publique.
On ne sait pas pourquoi (quel est donc le contexte ?) tu es conduit si fréquemment à ré-afficher cette fenêtre en mode SHOWMAXIMIZED !


________________________
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
mercredi 3 octobre 2012 à 22:27:43 | Re : fenetre grise lors d'un basculement sur une autre appli

banana32

Membre Club
Bonsoir ucfoutu,

Je me suis demandé si une application qui ne permet pas d'être 'maximized' pouvait interpréter le message ?
mercredi 3 octobre 2012 à 22:39:03 | Re : fenetre grise lors d'un basculement sur une autre appli

ucfoutu

Membre Club
Bonsoir, banana32
S'il a le handle de la fenêtre : aucune raison.
Il aurait alors éventuellement un message d'erreur (par exemple avec un Form Modal), mais pas ce "phénomène" graphique qu'il dénonce (fenêtre grisée).
De toutes manières : regarde plus attentivement ce passage de son exposé :

j’ai remarqué qu’à partir d’un certain moment la fenêtre de l’application appeler beugger (son emplacement sur l’écran se grise, le retour sur Excel a du mal et surtout le rapatriement de l’information voulu ne se fais plus)


La fenêtre appelée passe donc apparemment en maximized sans problème au début, mais les choses se corsent ensuite.
________________________
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
mercredi 3 octobre 2012 à 22:41:44 | Re : fenetre grise lors d'un basculement sur une autre appli

ucfoutu

Membre Club
Je me demande d'ailleurs si d'autres parties de son code (non montrées ici) n'épuisent pas sa mémoire. Et ce serait alors une fausse idée qu'il aurait des raisons réelles du phénomène observé.


________________________
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
mercredi 3 octobre 2012 à 22:49:33 | Re : fenetre grise lors d'un basculement sur une autre appli

banana32

Membre Club

vers une autre application (programmé sous TeemTalk)


Ou un bug dans cette application
jeudi 4 octobre 2012 à 09:19:20 | Re : fenetre grise lors d'un basculement sur une autre appli

SSelim

Pour répondre à tout le monde

@cmarcotte : effectivement, c’est un peu urgent puisque je suis sensé présenter mon projet en fin de semaine et il serait préférable qu’il n’y ait pas de bug. De plus je vois que tu a pris le temps de lister les 3 sujet que j’ais poster mais si tu les aurait ris le temps de les lire, tu aurais pu t’apercevoir que seul 2 sujet sont identique. Ce qui est dû au fait que comme je n’ai eu aucune réponse au sujet PASSAGE-EXCEL-VERS-AUTRE-APPLICATION (le même que ce sujet-là) j’ai voulu le changer de section, mais je n’ai pas trouvé comment le faire sur ce site.

Pour ce qui est du sujet en lui-même :
Je n’ai pas vraiment vérifié que le handle renvoyer une valeur <> 0 étant donnée qu’à chaque fois que je lance ma macro, la fenêtre s’affiche (mais bug de temps à autre). Donc il me semble que le handle renvoie bien une valeur (mais laquelle, aucune idée)

J’ai remplacé dans mon code le hwnd par le_hwnd, mais là ça ne va même plus chercher la fenêtre (alors que j’ai bien fais la modification partout).
J’ai lu sur certain forum qu’on pouvait directement appeler la fenêtre en appellent directement le numéro du handle. Ce qui évite de le recalculer à chaque fois (je pense que c’est de la que viens mon problème). Mais je n’ai pas trouvé les codes pour le faire, si quelqu’un pouvait me guider svp.

Au passage l’application permet bien d’être ‘maximized’ c’est d’ailleurs dans cet état que je la laisse en arrière-plan avant le premier lancement de la macro.
Concernant le reste du fichier, c’est vrai qu’il est assez conséquent (mais il ne pèse pas si lourd que ça ~ 50ko). En fait je lance une dizaine de sub les unes après les autres en basculant entre 2 fichiers Excel + cette application. Mais je ne fais pas de calcul ou autres. Principalement je compare des références qui sont stocké dans des cellules et je rapatrie des données de l’application.

Et pour finir, je ne pense pas que le bug vienne de l’application (même si ce n’est pas un foudre de guerre) puisque ça marche ~80% du temps et quand ca bug ca viens de l’appel de la fenêtre.

Si quelqu’un pouvait m’aider sur cette histoire de handle ça serait bien sympathique.
Merci encore.
jeudi 4 octobre 2012 à 10:26:06 | Re : fenetre grise lors d'un basculement sur une autre appli

ucfoutu

Membre Club

J’ai remplacé dans mon code le hwnd par le_hwnd, mais là ça ne va même plus chercher la fenêtre (alors que j’ai bien fais la modification partout).


Je ne sais pas comment tu t'y est pris, mais ce que tu dis là n'a pas de vrai sens !
hwnd n'est que le nom (de varible) donné au handle extrait par FindWindows. Tu pourrais aussi bien l'appeler toto, titi ou tartempion !

il me semble que le handle renvoie bien une valeur (mais laquelle, aucune idée)


un long, pardi, qui est l'identificateur de la fenêtre concernée.
Relis ce que j'ai écrit plus haut ! Inutile de le recalculer à chaque fois !
Déclare-le en variable générale, ouvre la fenêtre en cause, extrais-le une fois pour toutes par FindWindows. Utilise-le ensuite (ce long) en tant que de besoin. Il ne variera pas tant que la fenêtre reste ouverte.
________________________
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

1 2 3

Cette discussion est classée dans : macro, excel, fenetre, hwnd, grise


Répondre à ce message

Sujets en rapport avec ce message

fenetre Excel lors de l execution d une macro VBA [ par Vanjelis ] Quand je lance une macro VBA sous Excel, je ne peut plus atteindre (=activer), la fenetre Excel, a moins bien sur d arreter la macro. Coment on peut r Ouvrir Excel depuis macro VBA [ par 91ced ] Suite de ma macro à problème....A partir de mon code, comment gérer l'ouverture d'un fichier excel ?Ca fonctione pour .doc, .pdf, .xml, etc....mais pa Passage d'excel vers une autre application [ par SSelim ] Bonjour, encore un autre problème sur excel 2010 voilà, dans le cadre d’un projet, je suis amené à utiliser une macro vba qui me permet de passer d’E Help Macro excel , importer données de differents onglets [ par xeolight ] Bonjour j'ai besoin d'aide ... je dois programmer une macro sur excel  donc ... la premiere page est une cartographie d'ascenseur (par lignes : lieu, [Excel] macro bouton et mise en mémoire ? [ par fartounet ] Bonjour à tous. Je tiens d'abord à m'excuser pour le thème mis mais je ne m'y connais pas du tout, je ne savais donc pas où mettre cela étant donné qu macro excel [ par ihda ] comment accéder directement  au code source d'une macro excelsachant que lorsque j'essai d'ouvrir la macro j'ai un message la version est expirer Macro dans excel [ par jerlag ] Bonjour à tous,j'ai créer une macro dans un classeur Excel et je voudrais savoir si il étais possible de pouvoir s'en servir dans d'autre classeurs sa macro access-excel [ par snow190 ] est- il possible de faire une macro access qui permet de lancé une impression sous excel ou un etat?[font=Comic Sans MS]So.[/font=Comic Sans MS][8D] Macro Excel Impression [ par cpsfg ] Bonjour à tous,Dire que j'ai un petit souci est une lapalissade...J'explique : Je suis en VBA sur Excel. J'ai cré des formulaires avec des boutons aux macro excel [ par pascalbg ] Bonjour,  Je me lance dans les macros EXCEL et connais très sommairement VB  Je cherche simplement à faire une macro qui va lire le contenu d'une cell


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2013
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,449 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales