VBScript Urgent!!!

Résolu
gon_ak Messages postés 197 Date d'inscription mardi 28 février 2006 Statut Membre Dernière intervention 17 novembre 2006 - 30 mars 2006 à 13:18
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 - 1 avril 2006 à 23:58
Bonjour à tous!

Voilà j'ai un gros souci. J'ai écris un script me permettant de définir les horaires d'équipe de travail d'une machine. J'ai donc des mots qui correspondent au horaires d'équipe.
Le mot qui correspond à l'heure du début de commencer de mon équipe 1 est :
<%#TagSSI,B401_i_StartShift_1%>

Ce mot est définit en minute. Je me suis donc arrangé à écrire l'heure en heures et minutes.

Maintenant, je souhaite que l'utilisateur puisse changer l'heure à sa convenance. J'ai donc créer une fonction Sub avec ONCHANGE.

Et maintenant je voudrais enregistrer, la nouvelle heure que l'utilisateur à écris dans le champs de saisie.

Mon problème est: Je souhaite convertir la nouvelle heure en minute sans prendre en compte "h" et "min", pour pouvoir l'envoyer au mot correspondant de l'Automate. En fait, refaire l'opération à l'envers.
La réponse est peut-être bête mais je ne vois pas comment faire

Voir code ci-dessous:


<script type="text/vbscript">
Dim conf1,tab1,Heure1,Minute1,H1,M1,Indice1,NewTime1,Affichage1
H1="h"
M1="min"
Indice1="0"

conf1="<%#TagSSI,B401_i_StartShift_1%>"
Heure1= Int (conf1/60)
Minute1= conf1 Mod 60
If Heure1<=9 Then
Heure1= Indice1 & Heure1
End if
If Minute1<=9 Then
Minute1= Indice1 & Minute1
End if
Affichage1= Heure1 & H1 & Minute1 & M1

document.write("Heure de début: ")

/////////Résultat de Sortie: Heure de début: 05h00min

Sub horaire1_OnChange
NewTime1 = horaire1.value
MsgBox "Nouveau horaire:"&NewTime1&" ,Confirmez!",vbExclamation
End Sub

Sub Cmd_Enregistrer_OnClick
msgbox "test"
NewHeure1= Newtime *60
?????????????????????????
End Sub

Merci d'avance, pour ceux qui m'aiderons ou lirons ce message. Aidez-moi SVP!!

6 réponses

rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
31 mars 2006 à 14:08
Salut gon_ak, salut jordinette,

tu pourrais :

- soit afficher 2 champs, un avec les heures, l'autre avec les minutes. Et quand l'utilisateur fait une saisie, il saisit les heures dans un champ, les minutes dans l'autre.

- soit faire une fonction qui :
- nettoie la chaine si "h" et "min" sont saisies ( ! "mn" et "m", qui sait? )
- fait la conversion de heures/minutes en minutes.

Mais tu vas dire : "Oui, mais comment j'enlève "h" et "min"?". Je suis d'accord, c'est un problème, mais si petit :

1ère soluce : Tu es sûr que l'utilisateur saisiera toujours "h" et "min". Tu fais un Replace de "h" par ":", un Replace de "min" par "", un Split sur ":", et tu récupères dans un tableau.

QUOI ? :

Private Sub Cmd_Enregistrer_OnClick()
Dim strChaineSale As String
Dim strChainePropre As String
Dim varMots As Variant
Dim lngDureeMinutes As Long
'la mauvaise chaine
strChaineSale = "11h15min"
'enlève le h (vbTextCompare, c'est pour ne pas tenir compte de la casse)
strChainePropre = Replace(strChaineSale, "h", ":", , vbTextCompare)
'enlève le min (vbTextCompare=1)
strChainePropre = Replace(strChainePropre, "min", "", , vbTextCompare)
'sépare les 2
varMots = Split(strChainePropre, ":")
'affecte le résultat en minutes
lngDureeMinutes = Clng(varMots(0) * 60) + Clng(varMots(1))
'bla bla
End Sub

2ème soluce : Les codes ASCII représentant des chiffres comment à 48 et finissent à 57 (en décimal), donc tu sais reconnaitre dans la chaine quels sont les codes qui ne sont pas des chiffres. Pour lire un caractère d'une chaine, c'est Mid(String, Start As Long, Length), pour connaitre son code ASCII, c'est Asc(String As String)As Integer. Le reste (la boucle), c'est de l'algo, et quelque chose me dit que çà, on n'a pas besoin de l'expliquer!

à+

rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
3
cs_jordinette Messages postés 134 Date d'inscription mercredi 2 mars 2005 Statut Membre Dernière intervention 5 avril 2007
30 mars 2006 à 15:26
bonjour,
j'ai beaucoup de mal a comprendre ce que tu veux farie par ton script!
exemple:
heure saisie "10h15min"
heure de convenance saisie "11h15min"
tu voudrais que ton programme fasse quoi sur ces exemples?
Jordinette
0
gon_ak Messages postés 197 Date d'inscription mardi 28 février 2006 Statut Membre Dernière intervention 17 novembre 2006
30 mars 2006 à 16:09
En fait, je reprend tous les paramètres de mon automate que je représente sur une page Web.

L'un des paramètres est "date de début Equipe 1" qui correspond au mot %MW300 de mon automate et celui-ci donne une valeur en minutes.

Et moi pour que ça soit plus soigné sur ma page Web et ben j'ai distingué les heures et les minutes.

Donnée de l'automate: 615min
->Heure saisie "10h15min"

Ici, en fait j'ai récupérer la valeur donné par l'automate.

Maintenant je voudrais ecraser l'heure précédente avec une nouvelle heure
que je souhaite envoyer vers l'automate.
-> heure de convenance saisie "11h15min"

Et mon problème c'est que je ne sais pas comment envoyer "11h15min" à mon automate qui doit recevoir 675 min. Il me faut un script ou je devrais distingué les heures que je mulitiplierais par 60 et les minutes puis faire la somme et ainsi envoyer à l'automate

Est-ce-que c'est plus clair?
0
gon_ak Messages postés 197 Date d'inscription mardi 28 février 2006 Statut Membre Dernière intervention 17 novembre 2006
30 mars 2006 à 16:16
En fait c'est simple

Je voudrais récupérer la valeur de "11h15min" en minutes soit 675 min
Comment faire?
Je pensais faire une boucle for

Sub horaire1_OnChange
NewTime1 = horaire1.value
MsgBox "Nouveau horaire:"&NewTime1&" ,Confirmez!",vbExclamation
End Sub

Sub Cmd_Enregistrer_OnClick
msgbox "test"
For i=0 to 7
i= NewTime+1 /// Mais j'ai le "h" de heure et "min" de minutes qui m'embête et je vois pas comment faire
End Sub
0

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

Posez votre question
gon_ak Messages postés 197 Date d'inscription mardi 28 février 2006 Statut Membre Dernière intervention 17 novembre 2006
1 avril 2006 à 23:22
Salut rvblog,

Merci beaucoup pour ton aide précieuse. Je t'en suis reconnaissante. J'avais décidé par la suite de séparer les minutes et heures avec deux champs différents mais ta première solution est terrible!
0
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
1 avril 2006 à 23:58
Je t'en pries, ce fut un plaisir,

par contre, je te le redis, elle n'est pas fiable telle qu'elle est présentée.
Il faut soit s'assurer qu'il n'y a qu'un utilisateur, et qu'il ne se trompera jamais, soit blinder les différents cas de figures.

Je suis pas myso, mais j'avais pensé que tu était une fille! je te parlait sans ménagement, comme à un gars! Mais, en relisant, je me rend compte que j'aurais pu m'en douter, un gars, il aurait dit

i= NewTime+1 /// Mais j'ai le "h" de heure et "min" de minutes qui me font chier et chuis grave ds la merde

Maiiiis, j'rigole, qu'est-ce ça peut changer que tu sois un fille, au contraire, c'en est bien la preuve (des fois qu'il y en ait qui doutent).

:) à ton service M'dame

à+


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
0
Rejoignez-nous