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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Form

n°1085362
alexandre6​9
Posté le 16-05-2005 à 13:54:10  profilanswer
 

Bonjour à tous
 
Comment peut-on faire pour fermer un form par une macro et non grâce à une action déclenchée par un utilisateur ?
 
Thanks
 

mood
Publicité
Posté le 16-05-2005 à 13:54:10  profilanswer
 

n°1085416
AlainTech
Pas trouvé? Cherche encore!
Posté le 16-05-2005 à 14:39:25  profilanswer
 

Unload userform
Ou unload me si la macro est dans le form lui-même


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
n°1087752
alexandre6​9
Posté le 18-05-2005 à 13:24:13  profilanswer
 

Cette méthode ne fonctionne pas, parce que quand tu charges ton form, alors la macro s'arrête et attend une action de l'utilisateur (fermeture par exemple) pour continuer la lecture des lignes suivantes. Donc le unload ne sert plus à rien.
 
Voilà ce que je cherche à faire : quand je lance une macro un form s'affiche pour dire à l'utilisateur de patienter pendant son exécution. J'ai essayé d'utiliser la méthode "progressbar" mais mon VB(xp) ne connaît pas cette fonction.

n°1087765
knakes
Posté le 18-05-2005 à 13:27:53  profilanswer
 

VB(xp) prend très bien en charge cette technique.
 
Tout dépend du code que tu lui a mis. (envoie pour voir)


---------------
now : do nothing
n°1087781
alexandre6​9
Posté le 18-05-2005 à 13:38:16  profilanswer
 

j'ai essayé plusieur solutions, surement bidon car je ne sait pas comment l'utiliser. J'ai cherché également dans l'aide et "tête de trombone" y connait pas !!!!!!!

n°1087910
knakes
Posté le 18-05-2005 à 14:49:17  profilanswer
 

Le problème c'est que la fonction timer n'existe pas sur VBA. Voilà un truc un peu bricolé mais qui finctionne relativement bien :

Code :
  1. If valu = "" Then valu = Now
  2. ' Si valu est nul, on lui affecte l'instant présent
  3. ReTry:
  4. ' Retour de boucle
  5. If Not valu = Now Then
  6. ' Si valu n'est plus égal à l'instant préssent, 1 seconde s'est écoulée
  7. valu = Now
  8. ' On réaffecte la variable Value
  9. End If
  10. ' Fin du If


Dans ton programme avec la ProgressBar, cela pourrait donner

Code :
  1. Me.ProgressBar1.Value = 0
  2. ' On s'assure que la ProgressBar est à 0
  3. If valu = "" Then valu = Now
  4. ' Si valu est nul, on lui affecte l'instant présent
  5. ReTry:
  6. ' Retour de boucle
  7. If Not valu = Now Then
  8. ' Si valu n'est plus égal à l'instant préssent, 1 seconde s'est écoulée
  9. valu = Now
  10. ' On réaffecte la variable Value
  11. Me.ProgressBar1.Value = Me.ProgressBar1.Value + 10
  12. ' On augmente la valeur de la ProgressBar
  13. End If
  14. ' Fin du If
  15. If Not Me.ProgressBar1.Value >= 100 Then GoTo ReTry
  16. ' Si la valeur est à son maximal, ici 100, on arrête, sinon on continue


 
Sinon pour ceux qui savent où se trouve le Timer sous VBA, je suis preneur ...


---------------
now : do nothing
n°1088139
alexandre6​9
Posté le 18-05-2005 à 16:44:28  profilanswer
 

merci pour la réponse, je test et je te donnes des news

n°1088293
AlainTech
Pas trouvé? Cherche encore!
Posté le 18-05-2005 à 18:15:23  profilanswer
 

knakes a écrit :

Sinon pour ceux qui savent où se trouve le Timer sous VBA, je suis preneur ...


Aide de VBA:
 
Timer Function
 
Returns a Single representing the number of seconds elapsed since midnight.
 
Syntax
 
Timer


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
n°1088360
knakes
Posté le 18-05-2005 à 19:13:43  profilanswer
 

Merki beaucoup.
 
Je n'avais même pas pensé à la touche F1  :non: C'est pas bien.


---------------
now : do nothing
n°1088373
AlainTech
Pas trouvé? Cherche encore!
Posté le 18-05-2005 à 19:26:03  profilanswer
 

Ah, non...
 
LE FOUET, LE Fouet, le fouet, le f...


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
mood
Publicité
Posté le 18-05-2005 à 19:26:03  profilanswer
 

n°1088413
knakes
Posté le 18-05-2005 à 20:04:03  profilanswer
 

humm. Quand même pas. Si ?


---------------
now : do nothing
n°1089121
alexandre6​9
Posté le 19-05-2005 à 14:06:52  profilanswer
 

sympas pour ces infos, même intéressantes, je ne connaisait pas la fonction Timer.  
J'ai donc tout testé mais j'ai toujours mon problème d'affichage de l'UserForm qui me bloc l'exécution de ma macro tant que l'utilisateur ne la pas fermé manuellement.
 
Et la progress bar, y connait pas l'aide microsoft, y a t'il différente version/pack de XP professionnel ?

n°1089341
AlainTech
Pas trouvé? Cherche encore!
Posté le 19-05-2005 à 15:50:51  profilanswer
 

Personnellement, j'affiche le UserForm et je fais faire la fonction (d'ouverture, de connexion, ...) par ce dernier.
Il me suffit de faire Unload Me quand l'opération est terminée.


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!

Aller à :
Ajouter une réponse
 

Sujets relatifs
[RESOLU][C# .NET] Créer des objets Windows Form par le code source2 select dans un form
Transformer du code VBA en VB et Userform en FormUtiliser TClientSocket sans placer l'icone ClientSocket sur une Form
[C#]Probleme de données entre Form[c#] [form] listbox double click item
FORM qui ne fonctionne qu'avec la touche 'enter' ?![Servlet] Forward apres un <form "enctype=multipart/form-data">
faire passer un tableau d'une form à une autreapplication multi-form en C#, simple mais bloqué..
Plus de sujets relatifs à : Form


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