Afficher une boite de dialogue au premier plan

Résolu
Albadeath Messages postés 18 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 28 mars 2006 - 13 mars 2006 à 11:53
Albadeath Messages postés 18 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 28 mars 2006 - 28 mars 2006 à 11:33
Bonjour,
En fait j'utilise une macro VBA access pour "piloter" une application et je voudrai y afficher une boite de dialogue. Le problème c'est que quand j'utilise message box elle s'affiche sous exel.


<HR width="100%" SIZE=2>

15 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
13 mars 2006 à 14:57
ok. utilise l'API MessageBox et attache la au handle désiré.





VB6 :






Const MB_DEFBUTTON1 = &H0&

Const MB_DEFBUTTON2 = &H100&

Const MB_DEFBUTTON3 = &H200&

Const MB_ICONASTERISK = &H40&

Const MB_ICONEXCLAMATION = &H30&

Const MB_ICONHAND = &H10&

Const MB_ICONINFORMATION = MB_ICONASTERISK

Const MB_ICONQUESTION = &H20&

Const MB_ICONSTOP = MB_ICONHAND

Const MB_OK = &H0&

Const MB_OKCANCEL = &H1&

Const MB_YESNO = &H4&

Const MB_YESNOCANCEL = &H3&

Const MB_ABORTRETRYIGNORE = &H2&

Const MB_RETRYCANCEL = &H5&

Private Declare Function MessageBox Lib "user32" Alias "MessageBoxA" _

(ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, _

ByVal wType As Long) As Long



Private Sub Form_Load()

'KPD-Team 1998

'URL: http://www.allapi.net/

'E-Mail: KPDTeam@Allapi.net

'Show a messagebox

MessageBox 0&, "KPD-Team 1998", App.Title, MB_OK

Unload Me

End Sub




<small> Coloration
syntaxique automatique [AFCK]</small>
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
13 mars 2006 à 13:28
salut,

fais-toi une feuille personnalisée

MaForm.show vbmodal
0
Albadeath Messages postés 18 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 28 mars 2006
13 mars 2006 à 14:09
Je crois que je me suis mal exprimé désolé. Quand je dit 'sous excel' c'est pas dessous mais c'est que ça s'affiche sur une feuille. Ce que je veux c'est par exemple activer Internet Explorer avec 'appactivate' et afficher une boite de dialogue au premier plan devant IE (ou n'importe quelle autre application). J'ai déjà essayer avec une feuille personnalisée mais merci quand même.
0
Albadeath Messages postés 18 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 28 mars 2006
13 mars 2006 à 15:33
Merci beaucoup ça fonctionne déjà mieux. Il se lance une boîte de dialogue mais celle ci reste réduite alors que je voudrai l'afficher directement. D'ailleurs je croyait que appactivate agrandissait la fenêtre appelée mais ce n'est pas le cas. Je vien d'essayer des trucs mais ça marche pas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
13 mars 2006 à 16:01
çà fonctionne "mieux", mieux que rien? çà aide pas çà.

"essayé des trucs mais çà marche pas", tu peux être encore moins précis stp?
0
Albadeath Messages postés 18 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 28 mars 2006
13 mars 2006 à 16:09
J'ai dit ce qu'il se passait : "Il se lance une boîte de dialogue mais celle ci reste réduite alors que je voudrai l'afficher directement". En gros la boite n'arrive plus sous exel, ça c'est la bonne nouvelle, mais elle reste réduite dans la "barre windows en bas". Je vois pas comment être plus clair...
J'ai essayé ceci mais non...

MessageBox 0&, "Voulez-vous enregistrer?", "Validation", MB_YESNO
AppActivate "Validation", True

Le appactivate ne fonctionne pas sur un messagebox (ce qui est logique finalement).
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
13 mars 2006 à 17:12
ouaip, et je t'ai indiqué qu'il fallait l'attacher au handle désiré, avec 0& en rouge pour voir quelle valeur changer ;)
0
Albadeath Messages postés 18 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 28 mars 2006
13 mars 2006 à 17:27
Ok mais c'est quoi le handle? Je suis un débutant moi désolé. Ca fait qu'une semaine que je bosse sur VB pour mon stage.
En tout cas merci pour les infos.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
13 mars 2006 à 17:32
c'est l'identifiant de ta fenêtre (fourni et généré par l'OS)
0
Albadeath Messages postés 18 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 28 mars 2006
13 mars 2006 à 17:37
D'accord mais comment je peut le récupérer cet identifiant? C'est toujours le même ou il est variant?
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
13 mars 2006 à 17:52
le handle change à chaque fois.

récupérer l'identifiant du MessageBox? tu ne peux pas (pas facilement en tout cas). de ta macro /
feuille-excel? j'ai mis l'exemple en VB6 parce que je ne touche pas à
VBA. désolé.



essaie de voir dans les sources existantes...
0
Albadeath Messages postés 18 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 28 mars 2006
14 mars 2006 à 09:48
Ok bah merci quand même je vais continuer de chercher.
0
zavier666 Messages postés 266 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 30 avril 2009 1
19 mars 2006 à 14:17
utilise la fonction setwindowpos et fait une fen^^etre always ont top pour qu'elle reste au dessus de toute les autres

tu peux essayer d'aller sur mon site dans la rubrique user32dll pour savoir comment récupérer les handle des fenêtre et savoir comment agir sur ta fe^nêtre:

http//xav.prog.power.free.fr
0
Albadeath Messages postés 18 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 28 mars 2006
21 mars 2006 à 13:37
Ok merci Zavier666 pour ton aide mais j'ai réussi à résoudre mon problème en utilisant justement les API. J'utilise FindWindow pour avoir le handle (ça marche super sauf qu'il faut connaitre la classe de l'appli) puis ShowWindow et enfin SetForegroundWindow. C'est imparrable.

Je vais tout de même aller jeter un oeuil sur ton site vu que j'ai encore d'autre chose à faire.

Voila
0
Albadeath Messages postés 18 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 28 mars 2006
28 mars 2006 à 11:33
Ok donc il est impossible de faire afficher une boite de dialogue sur une appli et que l'accès à cette dernière soit possible, dommage...
0
Rejoignez-nous