IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Tests sur les dates et heures


Sujet :

VBScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2016
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Tests sur les dates et heures
    Bonjour ! Je dois développer un programme pour une petite entreprise, mais ça ne fonctionne pas :'( pouvez-vous me dire ce qui ne vas pas ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    dim date
    do
    	date = weekday(date)
     
    	if date = 7 then
    		if Hour(Now)=17 then
    			if Minute(now)=21 then
    				if Seconde(Now)=1 then
    					Set Sh = CreateObject("WScript.Shell")
    					Sh.run ".\18.bat"
    					Set Sh = Nothing
    				end if
    			end if
    		end if
    	end if
     
    	if date < 7 then 
    		if Hour(Now)=14 then
    			if Minute(now)=21 then
    				if Seconde(Now)=0 then
    					Set Sh = CreateObject("WScript.Shell")
    					Sh.run ".\12.bat"									
    					Set Sh = Nothing
    				end if
    			end if
    		end if
    	end if
    loop
    Par ailleur, mon premier était celui-ci, même question, qu'est-ce qui cloche ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    dim date
    date = weekday(date)
     
    if date = 7 then
    	call dimanche
    	else
    	call semaine
    end if
     
    fonction semaine
    do
    	if Hour(Now)=11 then
    		if Minute(now)=50 then
    			if Seconde(Now)=1 then
    				Set Sh = CreateObject("WScript.Shell")
    				Sh.run ".\12.bat"
    				Set Sh = Nothing
    				exit loop
    			end if
    		end if
    	end if
     
    loop
    end fonction
     
    do	
    	if Hour(Now)=18 then
    		if Minute(now)=50 then
    			if Seconde(Now)=1 then
    				Set Sh = CreateObject("WScript.Shell")
    				Sh.run ".\19.bat"
    				Set Sh = Nothing
    				exit loop
    			end if
    		end if
    	end if
    loop
     
    fonction dimanche
     
    do	
    	if Hour(Now)=17 then
    		if Minute(now)=50 then
    			if Seconde(Now)=1 then
    				Set Sh = CreateObject("WScript.Shell")
    				Sh.run ".\18.bat"
    				Set Sh = Nothing
    				exit loop
    			end if
    		end if
    	end if
    loop
    end fonction
    Merci :*

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 805
    Points
    5 805
    Par défaut
    Bonjour et Bienvenu sur DVP

    A première vue, on ne doit pas déclarer une variable de même nom qu'une procédure(Sub), une fonction ou une constante propre au langage utilisé.
    Par exemple au lieu de déclarer une variable : Dim Date, il est plus judicieux de la déclarer Dim DT évitant ainsi le mélange entre variable et fonction. D'ailleurs, tu vois que la couleur du mot Date est différente de celle d'un texte normal.

    D'autre part, je ne vois pas de fonction s'intitulant semaine ni dimanche parce que tout simplement tu les as mises en commentaire.
    Corrige ces inadéquations et essaie de nouveau puis reviens donner le résultat du test.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2016
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Merci, je me pencherais plus sur le premier problème du premier code, et je tient à préciser que j'ai déjà tester et déclarer avec Date ne pose pas de souci ( mais merci du conseil je modifirais cela )

  4. #4
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 175
    Points
    17 175
    Par défaut
    Salut
    Ligne 10 et 39: fonction NomDeLaFonction, ligne 24 et 53: End fonction ,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Function Semaine
    'le code
    End Function
    '--------------------------------------------------
    Function dimanche
    'le code
    End Function
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 805
    Points
    5 805
    Par défaut
    ProgElecT
    Bien vu et merci.
    En fait, je n'ai fait que diagonaliser le code sans faire attention à l'orthographe (Fonction et Function).

    @ Yoloswagbifle
    Les 2 fonctions semaine et dimanche sont en fait des boucles infinies.
    Le script tel qu'il est, tournera sans arrêt jusqu'à la fermeture de la session, le redémarrage ou l'arrêt du PC.
    Est-ce le but du script , un oubli ou alors une condition d'arrêt que tu n'as pas pu implémenter ?
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2016
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Ahah l'erreur nulle pour Function, mais étrange qu'il ne m'est pas fait d'erreur alors :/ et oui le but de mon script est de diffuser un message à une heure précise, et l'heure change le dimanche , j'ai essayé Schtasks pour le dos , et ça n'as pas fonctionner ...
    Merci de vos conseils pour l'instant mais pour le premier script, sans "Function", il est plus simple mais ne fonctionne pas

  7. #7
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 805
    Points
    5 805
    Par défaut
    Dans ma signature, il y a : Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA)
    Alors si tu l'avais fait, tu aurais remarqué que Seconde est un terme non reconnu par VBScript.

    Il fallait mettre Second.
    Avec quelques petites modifications, le premier script fonctionne correctement.
    J'y ai introduit une condition d'arrêt au cas où.
    Si tu veux faire tourner le script indéfiniment, tu peux mettre en commentaire la condition d'arrêt.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Option Explicit 
     
    Dim DT, Sh, OK1, OK2
    OK1 = False : OK2 = False
    Do 
        DT = weekday(date)
         If DT = 7 Then
            If Hour(Now)=17 Then
                If Minute(now)=21 Then
                    If Second(Now)=1 Then
                        Set Sh = CreateObject("WScript.Shell")
                        Sh.run ".\18.bat"
                        Set Sh = Nothing
                        OK1 = True
                    End If
                End If
            End If
        End If
     
        If DT < 7 Then 
            If Hour(Now)=14 Then
                If Minute(now)=21 Then
                    If Second(Now)=0 Then
                        Set Sh = CreateObject("WScript.Shell")
                        Sh.run ".\12.bat"                                    
                        Set Sh = Nothing
                        OK2 = True
                    End If
                End If
            End If
        End If
        If OK1 And OK2 Then Wscript.Quit
    Loop 'Until OK1 And OK2
    Pour dimanche(où l'heure change !), tu peux mettre une condition sur DT If DT = 1 Then ...
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2016
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup
    A quoi sert l'option Explicit dans mon cas ? Dim n'est pas que pour declarer des nombres ?
    encore merci !

  9. #9
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 805
    Points
    5 805
    Par défaut
    Citation Envoyé par Yoloswagbifle Voir le message
    Merci beaucoup
    A quoi sert l'option Explicit dans mon cas ? Dim n'est pas que pour declarer des nombres ?
    encore merci !
    Option Explicit permet de voir tout terme saisi que le "compilateur" ne connait pas.
    En relation avec ton premier code, si tu avais ajouté tout à fait au début du code cette clause, le compilateur te signalera :
    Variable non définie : 'Seconde' tout en indiquant la ligne et le caractère de début où l'erreur est survenue.
    Dim sert à déclarer les variables de tout type, pas uniquement les nombres.
    D'ailleurs, en VBScript, les variables ne sont pas typées au départ lors de leur déclaration.
    Elles prendrons un type quand on leur affecte une valeur(numérique, chaine, objet ...)
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  10. #10
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2016
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    merci enormement !! avant que je mette en résolus, vous savez comment ( en vbs ) je peut le forcer a s'executer au demarrage ?
    merci encore

  11. #11
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 805
    Points
    5 805
    Par défaut
    J'attends alors beaucoup de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     Option Explicit 
     
     Const Key = "HKCU\Software\Microsoft\Windows\CurrentVersion\"
     Dim DT, Sh, OK1, OK2, WS, ApName, Apath
     
     OK1 = False : OK2 = False
     TestStart
     Do 
        DT = weekday(date)
         If DT = 7 Then
            If Hour(Now)=17 Then
                If Minute(now)=21 Then
                    If Second(Now)=1 Then
                        Set Sh = CreateObject("WScript.Shell")
                        Sh.run ".\18.bat"
                        Set Sh = Nothing
                        OK1 = True
                    End If
                End If
            End If
        End If
     
        If DT < 7 Then 
            If Hour(Now)=14 Then
                If Minute(now)=21 Then
                    If Second(Now)=0 Then
                        Set Sh = CreateObject("WScript.Shell")
                        Sh.run ".\12.bat"                                    
                        Set Sh = Nothing
                        OK2 = True
                    End If
                End If
            End If
        End If
        If OK1 And OK2 Then Wscript.Quit
     Loop 
    '==============================
    Sub TestStart()
        Set WS = CreateObject("WScript.Shell")
        Apath = WS.ExpandenvironmentStrings("%windir%") & "\System32\" ' peut-être à modifier selon la version de Windows
        ApName = "WScript.exe"
        With WS
          On Error Resume Next
          If .RegRead(Key & "Run\" & ApName) = "" Or _
             .RegRead(Key & "Run\" & ApName) <> Apath & ApName & " " & Wscript.ScriptFullName  Then
             .RegWrite Key & "Run\" & ApName, Apath & ApName & "   " & Wscript.ScriptFullName
          Else
            Exit Sub
          End If
       End With
    End Sub
    Le script doit être lancé au moins une fois avant le redémarrage.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  12. #12
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2016
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Mec... Merci vraiment beaucoup . Si je te croisé dans la rue je te fait la bise...
    Merci énormément si j'avais de l'argent je t'en donnerais x)
    Merci encore !
    Bisou

  13. #13
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 805
    Points
    5 805
    Par défaut
    Merci pour le compliment
    Ici, on est bénévole et pas question d'argent.

    C'est pour moi un plaisir de pouvoir être utile et aider les autres.
    N'oublie pas de mettre la discussion en si c'est le cas.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. urgent besoin d aide sur PL/SQL
    Par gaijinma dans le forum PL/SQL
    Réponses: 8
    Dernier message: 17/05/2010, 14h08
  2. [D7] Besoin d'aide sur un PChar
    Par bobby-b dans le forum Langage
    Réponses: 6
    Dernier message: 30/06/2004, 16h42
  3. Filemaker ... besoin d'aide sur les Plugin
    Par joange dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 22/04/2004, 10h16
  4. [intermedia] besoin d'aide sur script PL/SQL
    Par SteelBox dans le forum PL/SQL
    Réponses: 8
    Dernier message: 05/01/2004, 19h59
  5. [CR] besoin d'aide sur les formules
    Par GuillaumeDSA dans le forum Formules
    Réponses: 4
    Dernier message: 10/07/2003, 12h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo