Accueil > Forum > > > > fenetre grise lors d'un basculement sur une autre appli
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
|
mercredi 3 octobre 2012 à 21:32:02 |
Re : fenetre grise lors d'un basculement sur une autre appli

banana32
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
|
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
Livres en rapport
|
Derniers Blogs
ETENDRE LE TEAM WEB ACCESS DE TFS 2012 - STEP 0ETENDRE LE TEAM WEB ACCESS DE TFS 2012 - STEP 0 par Philess
L'extensibilité du Team Web Access
Le Web Access (site d'équipe) de Team Foundation Server a été complètement réécrit dans la version 2012 avec pas moins de 400.000 lignes de JavaScript. Ce nouveau modèle a été pensé pour offrir de grandes...
Cliquez pour lire la suite de l'article par Philess SIMULER FACILEMENT L'ENVOI DE MAILSIMULER FACILEMENT L'ENVOI DE MAIL par JeremyJeanson
il m'a été demandé, à plusieurs reprises, comment je faisais pour simuler l'envoi de mail lors de mes démos de Workflow Foundation. Ma solution est plutôt simple : j'utilise la configuration par défaut du SmtpClient et j'oriente les mails vers un dossier ...
Cliquez pour lire la suite de l'article par JeremyJeanson VOTEZ POUR LE TOP 10 DES INFLUENCEURS SHAREPOINT FRANCOPHONES !VOTEZ POUR LE TOP 10 DES INFLUENCEURS SHAREPOINT FRANCOPHONES ! par Patrick Guimonet
Si ce n'est déjà fait (comme plus de 600 personnes déjà), il est encore temps de voter pour le concours TOP 10 des influenceurs SharePoint francophones ! Il est organisé par harmon.ie et accessible ici : http://harmon.ie/top-...
Cliquez pour lire la suite de l'article par Patrick Guimonet [CONF'SHAREPOINT] DERNIER RAPPEL ! :-)[CONF'SHAREPOINT] DERNIER RAPPEL ! :-) par Patrick Guimonet
La Conf'SharePoint en chiffres c'est : 3 jours de SharePoint ! 4 parcours et 60 sessions 17 partenaires représentant toutes les fac...
Cliquez pour lire la suite de l'article par Patrick Guimonet
Logiciels
Easy-Planning (4.5.0.11)EASY-PLANNING (4.5.0.11)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté a... Cliquez pour télécharger Easy-Planning CVEasy (3.1.0.51)CVEASY (3.1.0.51)PHMSD-CVEasy est un logiciel d'aide à la rédaction de CV d'une simplicité déconcertante.
PHMSD-C... Cliquez pour télécharger CVEasy LettresFaciles 2011 (8.6.0.31)LETTRESFACILES 2011 (8.6.0.31)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011 sDEVIS-FACTURES vlPRO (8.4.2.62)SDEVIS-FACTURES VLPRO (8.4.2.62)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO Devis-Factures PHMSD (2.1.0.11)DEVIS-FACTURES PHMSD (2.1.0.11)Configuration minimale
Nécessite Windows™ 2000, XP, Windows 7, 8, Vista (Service Pack à... Cliquez pour télécharger Devis-Factures PHMSD
|