Afficher une boite de dialogue au premier plan [Résolu]

Albadeath 18 Messages postés vendredi 24 septembre 2004Date d'inscription 28 mars 2006 Dernière intervention - 13 mars 2006 à 11:53 - Dernière réponse : Albadeath 18 Messages postés vendredi 24 septembre 2004Date d'inscription 28 mars 2006 Dernière intervention
- 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>
Afficher la suite 

15 réponses

PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 13 mars 2006 à 14:57
+3
Utile
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>
Cette réponse vous a-t-elle aidé ?  
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 13 mars 2006 à 13:28
0
Utile
salut,

fais-toi une feuille personnalisée

MaForm.show vbmodal
Albadeath 18 Messages postés vendredi 24 septembre 2004Date d'inscription 28 mars 2006 Dernière intervention - 13 mars 2006 à 14:09
0
Utile
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.
Albadeath 18 Messages postés vendredi 24 septembre 2004Date d'inscription 28 mars 2006 Dernière intervention - 13 mars 2006 à 15:33
0
Utile
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.
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 13 mars 2006 à 16:01
0
Utile
çà fonctionne "mieux", mieux que rien? çà aide pas çà.

"essayé des trucs mais çà marche pas", tu peux être encore moins précis stp?
Albadeath 18 Messages postés vendredi 24 septembre 2004Date d'inscription 28 mars 2006 Dernière intervention - 13 mars 2006 à 16:09
0
Utile
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).
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 13 mars 2006 à 17:12
0
Utile
ouaip, et je t'ai indiqué qu'il fallait l'attacher au handle désiré, avec 0& en rouge pour voir quelle valeur changer ;)
Albadeath 18 Messages postés vendredi 24 septembre 2004Date d'inscription 28 mars 2006 Dernière intervention - 13 mars 2006 à 17:27
0
Utile
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.
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 13 mars 2006 à 17:32
0
Utile
c'est l'identifiant de ta fenêtre (fourni et généré par l'OS)
Albadeath 18 Messages postés vendredi 24 septembre 2004Date d'inscription 28 mars 2006 Dernière intervention - 13 mars 2006 à 17:37
0
Utile
D'accord mais comment je peut le récupérer cet identifiant? C'est toujours le même ou il est variant?
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 13 mars 2006 à 17:52
0
Utile
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...
Albadeath 18 Messages postés vendredi 24 septembre 2004Date d'inscription 28 mars 2006 Dernière intervention - 14 mars 2006 à 09:48
0
Utile
Ok bah merci quand même je vais continuer de chercher.
zavier666 267 Messages postés mardi 7 septembre 2004Date d'inscription 30 avril 2009 Dernière intervention - 19 mars 2006 à 14:17
0
Utile
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
Albadeath 18 Messages postés vendredi 24 septembre 2004Date d'inscription 28 mars 2006 Dernière intervention - 21 mars 2006 à 13:37
0
Utile
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
Albadeath 18 Messages postés vendredi 24 septembre 2004Date d'inscription 28 mars 2006 Dernière intervention - 28 mars 2006 à 11:33
0
Utile
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...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.