Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1264 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [RESOLU]Mon neurone va exploser

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU]Mon neurone va exploser

n°1342491
Asmfox_swe​den
Posté le 09-04-2006 à 19:57:23  profilanswer
 

Bonjour,
 
Voila, après avoir passer de multiple heures à chercher à résoudre mon problème, je viens vous demander de l'aide.
J'ai dans un projet avec des feuilles, dans certaines feuilles les évenements Terminate et Keypress ne marche pas.
J'ai fait des points d'arrêts .... rien.
J'ai comparé avec un projet vierge (avec ces évenements qui marche) les paramètres des feuilles. Mais les paramètres sont identiques.
 
La chose bizarre, c'est que ces évenements marche sur une de mes feuilles de mon projets mais pas les autres.
Pourquoi?
Quelqu'un qui aurait rencontrer ce même problème, pourait-il m'aider ?
Merci.


Message édité par Asmfox_sweden le 10-04-2006 à 21:40:51
mood
Publicité
Posté le 09-04-2006 à 19:57:23  profilanswer
 

n°1342495
juju2k
Posté le 09-04-2006 à 20:05:34  profilanswer
 

Je suppose que tu parles de VBA et plus précisément de UserForm dans Excel... (il serait bon de le préciser ;) )
 
Pour l'événement KeyPress, il faut savoir que si le focus est sur un contrôle situé sur le UserForm, alors c'est ce contrôle qui déclenchera l'événement KeyPress.
 
Si tu programmes en VB, tu peux mettre la propriété KeyPreview de ta forme à True. Ainsi, les touches pressées sur un contrôle renverront sur l'événement de la forme (et peut-être aussi du contrôle, je sais plus).
 
Pour l'événement Terminate, je sais pas.

n°1342500
Asmfox_swe​den
Posté le 09-04-2006 à 20:10:04  profilanswer
 

Excuez moi,
Oui je suis en VB.
 
Merci pour KeyPress cela marche. J'aurai pu le voir plus vite mais j'ai le crâne en bouilli. Et merci pour la rapidité.
 
Il me reste plus qu'un savant en Terminate.

n°1342506
juju2k
Posté le 09-04-2006 à 20:22:33  profilanswer
 

La seule chose que je peux dire, c'est que l'événement Terminate intervient lorsqu'on décharge la forme :

Unload Form2


C'est pas le cas si on se contente de la cacher :

Form2.Hide

n°1342509
Asmfox_swe​den
Posté le 09-04-2006 à 20:25:43  profilanswer
 

En fait sur un projet vierge l'évenement réagi quand l'utilisateur clique sur la croix en haut à droite de la page pour la fermer.
Si on ne met rien derrière Terminate, quand l'utilisateur va cliquer il ne va rien se passer et le programme reste en mémoire.

n°1342523
juju2k
Posté le 09-04-2006 à 21:00:32  profilanswer
 

J'arrive pas à voir où tu veux en venir.
 
Le fait de décharger tes formes ne met pas pour autant un terme au programme. Il faut utiliser l'instruction End
 
Pour la forme principale, sers-toi de l'événement Unload pour gérer son déchargement.

n°1342527
Asmfox_swe​den
Posté le 09-04-2006 à 21:10:24  profilanswer
 

he bien je veux que le programme se ferme quand l'utilisateur clique sur la croix de fermeture.
Et le seul évenement que j'ai vu derrière cette croix est Terminate. Après dans Terminate je m'ai "end".
Mais mon problème c'est Terminate ne marche pas.
Du coup, quand l'utilisateur clique sur la croix , il ne se passe rien.
Es ce que c'est plus claire ?

n°1342532
juju2k
Posté le 09-04-2006 à 21:20:14  profilanswer
 

OK, je vois. En fait, t'as pas saisi quelques trucs :
 
Un événement se produit lorsqu'il se passe quelque chose sur un contrôle (bouton, forme, textbox...).
Par exemple, quand l'utilisateur clique sur le bouton nommé Command1, c'est l'événement Click qui réagit, donc la routine Private Sub Command1_Click se lance. Quand il passe la souris au-dessus d'une zone de texte nommée Text1, c'est la routine Text1_MouseMove qui va se lancer.
 
Quand l'utilisateur clique sur la croix qui ferme la forme, c'est l'événement Unload qui se lance. Tu dois placer l'instruction End dans cet événement :
 

Private Sub Form_Unload(Cancel As Integer)
    End
End Sub


 
N'hésite pas à demander si ça marche toujours pas ;)


Message édité par juju2k le 09-04-2006 à 21:21:53
n°1342583
Asmfox_swe​den
Posté le 09-04-2006 à 22:20:11  profilanswer
 

Excuse moi , mais ca ne marche toujours .
 
Et je ne suis pas totalement un débutant en VB.
Mais c'est vraiment bizarre, car sur un projet vierge les évenements Terminate et Unload (comme tu m'as dis) marche très, il y a même QueryUnload qui marche. Mais pas sur mon projet principal.

n°1342605
juju2k
Posté le 09-04-2006 à 22:37:35  profilanswer
 

Il se passe quoi si tu mets l'instruction End sur un bouton ? Ton programme se termine quand même ?
 
edit : content que tu ne le prennes pas mal pour le coup du débutant ;)
je suis pas un spécialiste non plus, mais bon, sur un forum, on discute de certaines choses, ça fait réfléchir, et les deux parties y gagnent :)


Message édité par juju2k le 09-04-2006 à 22:40:53
mood
Publicité
Posté le 09-04-2006 à 22:37:35  profilanswer
 

n°1342619
Asmfox_swe​den
Posté le 09-04-2006 à 22:50:55  profilanswer
 

Avec End ca ne fait rien, car il n'effectue pas l'évenement. Il n'en effectue aucun quand je clique sur la croix, ni Terminate, Unload,...
J'ai même mis des points d'arrêts pour voir si il passait dans ces évenemets en débogage mais rien.
Mais la chose qui est bizarre, c'est que ca marche très bien sur un projet vierge et pas sur mon gros programme.

n°1342624
juju2k
Posté le 09-04-2006 à 22:56:08  profilanswer
 

J'ai déjà remarqué des différences entre l'exécution sous VB et l'exécution avec l'exe créer pour de vrai. On sait jamais...

n°1342635
Asmfox_swe​den
Posté le 09-04-2006 à 23:04:45  profilanswer
 

C'était une hypothèse plausible, mais j'ai compilé mais toujours rien.

n°1342647
juju2k
Posté le 09-04-2006 à 23:15:44  profilanswer
 

Là, je sèche, désolé... :(

n°1342711
SplitForm
Moomnia !!!
Posté le 10-04-2006 à 08:16:47  profilanswer
 

Tu as essayé cette instruction ?
 
Si c'est du Excel : Application.Quit
Si c'est du Access : Docmd.Quit

n°1342730
watashi
La démotivation : JAMAIS !
Posté le 10-04-2006 à 09:36:47  profilanswer
 

salut asmfox
Quand tu fermes avec la croix il me semble que c'est la sub userform_queryclose qui s'exécute en tout cas sous excel.
 
bon courage
 


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1343443
Asmfox_swe​den
Posté le 10-04-2006 à 18:53:56  profilanswer
 

Je ne suis pas en VBA, mais bien VB et n'y a pas de queryclose juste queryunload (qui ne marche pas).
 
La chose bizarre dans mon histoire c'est que ca a marché, une fois je crois puis après plus rien. Je ne sais evidemment pas ce que j'ai changé (je crois pas avoir changé les paramètres des feuilles).

n°1343581
Asmfox_swe​den
Posté le 10-04-2006 à 21:43:26  profilanswer
 

Je ne sais pas comme, mais j'ai secoué ... je sais pas quoi ... et maintenant ca marche.  
Je comprends rien mais je suis content c'est principale.
Et si y en a qui veulent des nouvelles de mon neurone est bien il est en train d'ouvrir sa deuxième bouteille de champagne. (Heureusement que c'est pas lui qui paye).
 
Et encore merci pour tout ceux qui se sont penché sur le problème.


Message édité par Asmfox_sweden le 10-04-2006 à 21:44:00

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [RESOLU]Mon neurone va exploser

 

Sujets relatifs
[Résolu] typeid(résolu) [Java 3D] Changer l'apparence d'objets WaveFront
[résolu][C]Aide programmation somme de série numérique.[résolu][PERL]variable bizzare
[RESOLU] créer un tableau dynamique en php[PHP][GD][Résolu] Création de bordure en fondu
[VB.NET] Creer une petit navigateur web [Résolu][RESOLU] question tres simple sur nombre de caracteres a l'ecriture
[Résolu] Mauvaise incrémentation du NumeroAuto dans Access[Résolu] Parametre d'une fonction
Plus de sujets relatifs à : [RESOLU]Mon neurone va exploser


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR