Afficher une fenetre quand on clique sur un bouton

mairya Messages postés 11 Date d'inscription vendredi 25 décembre 2009 Statut Membre Dernière intervention 20 août 2010 - 16 mai 2007 à 22:33
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 18 mai 2007 à 03:42
Bonjour,
Je suis en train de programmer mon premier projet (un jeu) , et pour le conclure je voudrais que lorsque le joueur gagne et qu'il clique sur un bouton une fenetre s'ouvre contenant l'histoire découlant de sa victoire ainsi que des images.
Quelle commande dois je utiliser pour ca ? Et sur quel support dois je construire la fenetre qui va s'ouvrir ?
J'utilise VisualBasic d'Excel.
Merci de vos réponses.

8 réponses

cs_Maroxye Messages postés 177 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 16 octobre 2012
16 mai 2007 à 22:55
Et bien, tu vas aller dans:

Outils, Macros et Visual Basic Editor

Ensuite, tu ajoutes une form Visual Basic(Menu Insertion - User Form)

Tu vas voir une petite fenêtre grise, avec des outils à côté. Tu crée ta form(texte, boutons).

Ensuite, dans le code de ton bouton, tu fais afficher cette form.

 Maroxye
0
mairya Messages postés 11 Date d'inscription vendredi 25 décembre 2009 Statut Membre Dernière intervention 20 août 2010
16 mai 2007 à 23:20
Euh merci de ta réponse mais je crois pas que ce soit ce que je demande en fait.

J'ai déja créer le jeu, une simulation de combat par dès avec plusieurs joueurs.

Ce que je veux faire c'est un bouton qui, qd on clique dessus, m'ouvre une autre fenetre (word ou paint ou userform je sais pas!!!).

Est ce que c'est possible ?
Faut-il créer un chemin qui va chercher ce fichier ?
Comment le faire ?
Comment faire ausssi pour que ca marche sur nimporte quel PC?

La nouvelle fenetre contiendra la fin de l'histoire que j'aurai préalablement écrite dessus et des images ou une animation si c'est possible.
C'est possible ?

Merci beaucoup!!

MairYa
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
17 mai 2007 à 01:48
Salut,

regarde du côté de l'API ShellExecute, pour ouvrir ton fichier

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
0
mairya Messages postés 11 Date d'inscription vendredi 25 décembre 2009 Statut Membre Dernière intervention 20 août 2010
17 mai 2007 à 16:21
Salut,
J'ai essayé ce code que j'ai trouvé sur ce site :
PrivateDeclareFunction ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd AsLong, ByVal lpOperation AsString, ByVal lpFile AsString, ByVal lpParameters AsString, ByVal lpDirectory AsString, ByVal nShowCmd AsLong) AsLong
Const SW_SHOWNORMAL = 1

PrivateSub Form_Load()
ShellExecute Me.hwnd, "open", App.Path & "\texte.txt", vbNullString, App.Path, SW_SHOWNORMAL
EndSub

Mais une fenetre d'erreur me signale : membre ou méthode introuvable.
Et l'aide de visual basic me demande de vérifié ma collection.

Hein??? lol
Je comprends pas. J'ai pas fait de collection. Il ne me suffisait pas de mettre le fichier que je voulais ouvrir ds le méme répertoire que mon projet?

Quelqu'un peut-il m'expliquer ce que je dois faire avant de mettre ce code svp ?
Ou mettre le fichier que je veux ouvrir ?
Comment le nommer ?
Comment faire appel ensuite a ce code quand je clique sur un bouton ou un label ?
En faisant appel a la fonction 'call' ?

Je rapelle que je travaille sur le vsb d'excel. Peut etre que toutes les fonctions n'y sont pas utilisibales ?

Merci encore de votre aide.

MairYa
0

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

Posez votre question
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
18 mai 2007 à 00:08
Comme tu ne sembles pas travailler avec VB, mais plutôt avec VBA Excel seulement, il faut changer App.Path pour ThisWorkbook.Path

Ensuite, selon la façon dont tu procèdes Form_Load est un événement de base sous VB, mais n'existe pas comme tel sous Excel, mais peut très bien être utilisé en guise de procédure.

ShellExecute Me.hwnd, "open", ThisWorkbook.Path & "\texte.txt", vbNullString, vbNullString, SW_SHOWNORMAL

Tu places donc ton fichier dans le même répertoire que ton fichier Excel.
Et tu le nommes Texte.txt
Si tu veux le nommer autrement, pas de problème, mais tu devras changer le nom en rouge

MPi
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
18 mai 2007 à 01:09
Ah...
Si le Me.hwnd existe sous VBA, voilà qui fait mon affaire ailleurs (voir la discussion ouverte à propos d'un objet OLE)
J'étais persiadé que ce Me.hwnd n'érait pas directement compris sous VBA.
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
18 mai 2007 à 02:16
Exact,
il faut remplacer Me.hwnd par Application.hwnd

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
18 mai 2007 à 03:42
En fait, je n'ai pas fait attention à ce paramètre...
J'y aurais mis 0 et l'aurais écrit comme suit

ShellExecute 0, "open", ThisWorkbook.Path & "\texte.txt", 0&, 0&,  1

En l'écrivant de la sorte, je n'ai jamais eu de problème...

MPi
0
Rejoignez-nous