affichage d'une boite de dialogue

didougna

XLDnaute Nouveau
bonjour,

ce que je veux faire est plus explicité dans un post plus loin

je possede une tableau excel contenant 620 taches ainsi que leur temps de debut et leur temps de fin
J'aimerai qu'une boite de dialogue s'affiche lorsque la tache est en cours (de maniere a faire une simulation en temps reel) malheureusement je n'arrive pas a resoudre les erreur

je comptais utiliser un userform cependant cela ne marche pas, pouvez vous y jeter un coup d'oeil


Option Explicit
Dim Tps, Debut, Fin As Date

Dim i
Function afficher()
Load UserForm1
UserForm1.Show
End Function

Function cacher()
UserForm1.Hide
End Function

Sub dialogue()

Function Userformshow()



For i = 2 To Range("D65536").End(xlUp).Row

Now = Time

Debut = Now + TimeValue(Cells(i, 8).Value) //cells(i,8) contient la date de debut
OnTime(Debut, afficher) = True 'Traitement
Fin = Now + TimeValue(Cells(i, 12).Value) //cells(i,8) contient la date de fin
OnTime(Fin, cacher) = True 'Traitement

Next i



End Function


merci d'avance de votre aide qui me sera tres precieuse
 
Dernière édition:

didougna

XLDnaute Nouveau
Re : affichage d'une boite de dialogue

aussi j'ai demandé plusieur fois une aide sur ce forum sans resultat, pouvez vous m'indiquez ce qui vous manque, ou alors peut etre n'est ce pas interressant?
en tout la je suis en grosse galere

Merci d'avance
 

jeanpierre

Nous a quitté
Repose en paix
Re : affichage d'une boite de dialogue

Bonjour didougna, et re l'ami Spit... le forum,

Qu'elle que soit la question, même la plus simple, elle est toujours intéressante....

Là, tu parles d'USF, une création personnelle souvent, dont le code seul ne sert pas à grand chose.... surtout que derrière, il y a Excel.....

A te lire bien plus explicite et avec un fichier de ton travail actuel....

Bon soir à tous.

Jean-Pierre
 

didougna

XLDnaute Nouveau
Re : affichage d'une boite de dialogue

Merci de vos reponse et de vos attentions :)

Alors je vous ai joint le fichier excell que j'utilise, je l'ai simplifié car sinon il prenait trop de place.

Nous avons ainsi le nom de l'action en colonne A, la durée de l'action en seconde en colonne B, le temps entre le debut de la simulation et le declanchement de l'action en nanoseconde en colonne D, le temps entre le debut de la simulation et le declanchement de l'action en heure minute seconde en colonne H, le temps entre le debut de la simulation et la fin de l'action en heure minute seconde en colonne L

Le but est de creer une application qui declanche l'affichage d'une boite contenant l'intitulé de l'action au debut de l'action et qui arrete l'affichage a la fin de l'action, tout cela en temps réel.

J'ai utilisé un userform car je ne trouvais pas de message box sans bouton, cependant si tu as une autre idée je suis preneur!!

Merci d'avance
 

Pièces jointes

  • bout.zip
    46.9 KB · Affichages: 59

Spitnolan08

XLDnaute Barbatruc
Re : affichage d'une boite de dialogue

Re,

Pas très folichon ce que tu nous donnes...
En fait, il y a tout à faire!

Si j'ai bien compris, tes tâches se superposent et tu veux afficher un nouveau msgBox pour chaque tâche en cours ?
Pourquoi utiliser des durées de tâches en nanosecondes alors que les tâches concernées et les valeurs saisies sont supérieures à la seconde ?

Cordialement
 

didougna

XLDnaute Nouveau
Re : affichage d'une boite de dialogue

oui c'est exactement ca, je voudrais afficher une boite pour chaque action, et il y a des moments ou il y a plusieurs taches en meme temps.

Je ne vous demande pas de tout faire, juste de me donner des pistes:)
j'ai commencé a ecrire une macro (au debut du topic) mais ca ne marche pas

j'utilise des nanoseconde car en réalité ces donnée proviennent d'un logiciel de simulation qui me donne le temps en nanoseconde (c'est a la base un logiciel pour simuler des micro processeur)

merci
 

Spitnolan08

XLDnaute Barbatruc
Re : affichage d'une boite de dialogue

Re,

J'ai des idées mais je ne sais pas si j'aurais le temps de les mettre en pratique.
D'autant que j'ai un souci pour l'instant : je ne vois pas comment gérer l'affichage simultané de plusieurs MsgBox (ou autres) en leur affectant à chacune une durée d'affichage. Mais ça devrait venir...

Cordialement
 

didougna

XLDnaute Nouveau
Re : affichage d'une boite de dialogue

Sub simu()

Dim Temps_courant, Temps_initial
Dim Chaine As String
Dim NoLigne As Integer
Dim TabAffichage(10) As String

'Sélection de la feuille dans Excel
Sheets("Opé E").Select

'Ouverture de la fenêtre d'affichage
UserForm1.Show

'Lecture du temps initial en secondes
Temps_initial = Timer

'Calcul du temps final de la simulation
'Tfinal = (Cells(220, 4).Value) / 10 ^ 9 + Cells(220, 2).Value + 60
Tfinal = 300

'Boucle infinie
Do While 1 = 1

NoLigne = 1

'Lecture du temps courant entier en secondes
Temps_courant = Timer

'Calcul durée en secondes
Duree_totale = Temps_courant - Temps_initial

'Boucle sur les lignes du fichier Excel
For i = 2 To Range("D65536").End(xlUp).Row

'Lecture Tdeb de la tache
TdebTache = (Cells(i, 4).Value) / 10 ^ 10


'Lecture durée de la tache
Duree_tache = (Cells(i, 2).Value) / 10

'Calcul du Tfin de la tache
TfinTache = TdebTache + Duree_tache

If Duree_totale > TdebTache And Duree_totale < TfinTache Then

TabAffichage(NoLigne) = Cells(i, 1).Value
NoLigne = NoLigne + 1

End If

Next i
Chaine = Str(Duree_totale) & Chr(13) & TabAffichage(1) & Chr(13) & TabAffichage(2) & Chr(13) & TabAffichage(3) & Chr(13) & TabAffichage(4) & Chr(13) & TabAffichage(5) & Chr(13) & TabAffichage(6)

UserForm1.Label1 = Chaine

DoEvents


For i = 1 To 10
TabAffichage(i) = ""
Next i

If Duree_totale > Tfinal Then Exit Do
Loop

End Sub
 

Spitnolan08

XLDnaute Barbatruc
Re : affichage d'une boite de dialogue

Re,

Merci de nous tenir informé et de nous fournir la solution trouvée. Mais effectivement ce n'est plus le cahier des charges initial... Et cela se rapproche de la dernière idée que j'avais (L'idée seulement!)

Mais je m'étais perdu en esayant d'utiliser des barres de progression et autres systèmes géniaux:rolleyes: mais inapplicables...

Une question : Quand plusieurs tâches se superposent, avec ce code seule la dernière apparait ?

Cordialement
 

didougna

XLDnaute Nouveau
Re : affichage d'une boite de dialogue

non quand plusieures taches se superposent, toutes les taches apparaissent dans la meme userform
(au plus il peut s'afficher 6 actions en meme temps)
on a :

tache 1
tache 2
tache 3

maintenant j'essaie de mettre une message box qui apparait uniquement au debut de la tâche, pour que l'utilisateur se trouvant devant le pc fasse un clic au début de chaque tache (histoire de le réveiller)

encore merci
a plus
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 506
Messages
2 089 106
Membres
104 036
dernier inscrit
devdiop