Petit programme en vbs

Résolu/Fermé
ipvirgul Messages postés 9 Date d'inscription mardi 16 avril 2013 Statut Membre Dernière intervention 29 septembre 2014 - 27 avril 2013 à 09:59
ipvirgul Messages postés 9 Date d'inscription mardi 16 avril 2013 Statut Membre Dernière intervention 29 septembre 2014 - 28 avril 2013 à 18:22
Bonjour à tous

Tout d'abord je suis débutant en programmation VBS et j'essaie de réaliser une commande.
je souhaite réaliser un programme pour anticiper des RDV.
je vous joint le type de programme mais je ne sais pas si seulement c'est réalisable dans l'ensemble il fonctionne et individuellement aussi.

Ils sont tous les deux identique du coté fonctionnement, j'ai simplement renommé les variables pour éviter toute confusion. Pour le faire fonctionner il faut l'enregistrer (.vbs)

Le problème que je n'arrive pas a résoudre c'est : comment l'envoyer a la ligne 16 après validation de la condition if « ligne 7 ».

Le fait de mettre quit stop la lecture et le second programme ne peut pas s'exécuter.
Le problème se produit quand la date dt1 a passé le jour J.

Merci de m'aider si quelqu'un a une solution pour exécuter cette commande.

Cordialement

Jean Pierre




'On Error Resume Next
'****************Déclaration des variable****************'
1 Dim dt1, dt2, tp
2 Dim strnom
3dt1 = #04-15-2013#
4tp = #12:15#
5strnom = " Dr Hussein"
6dt2 = DateDiff("d",dt1,Date())
7if (dt2 > 0) or ( dt2< -4) then WScript.quit '(ici je veux suprime) quit que je remplace par (va a la ligne 16)
8if (dt2 <> 0) then
9msgbox "Vous avez RDV le: " & dt1 & " à " & tp & " dans " & dt2 & "jours" & " avec le " & 10strnom ,vbOkOnly,"ici le tire"
11else
12msgbox "vous avez RDV aujourd'hui" & " à " & tp & " avec le " & strnom ,vbOkOnly,"ici 13le tire"
14end if
15'*****************Second programme************************'
16'On Error Resume Next
17Dim dt11, dt22, tp2
18Dim strnom2
19dt11 = #05-19-2013#
20tp2 = #12:15#
21strnom2 = " conseil syndical"
22dt22 = DateDiff("d",dt1,Date())
23if (dt22 > 0) or ( dt22< -4) then WScript.quit
24if (dt22 <> 0) then
25msgbox "Vous avez RDV le: " & dt11 & " à " & tp2 & " dans " & dt22 & "jours" & " avec 26le " & strnom2 ,vbOkOnly,"ici le tire"
27else
28msgbox "vous avez RDV aujourd'hui" & " à " & tp2 & " avec le " & strnom2 ,vbOkOnly,"ici le tire"
29end if

2 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
27 avril 2013 à 11:01
Bonjour,

un exemple de code:

'On Error Resume Next
'****************Déclaration des variable****************'
Dim dt1, dt2, tp
Dim strnom
dt1 = #04-15-2013#
tp = #12:15#
strnom = " Dr Hussein"
dt2 = DateDiff("d",dt1,Date())
if (dt2 > 0) or ( dt2< -4) Then
	Call suite		'WScript.quit '(ici je veux suprime) quit que je remplace par (va a la ligne 16)
End If
if (dt2 <> 0) then
	msgbox "Vous avez RDV le: " & dt1 & " à " & tp & " dans " & dt2 & "jours" & " avec le " & strnom ,vbOkOnly,"ici le tire"
else
	msgbox "vous avez RDV aujourd'hui" & " à " & tp & " avec le " & strnom ,vbOkOnly,"ici 13le tire"
end If
WScript.quit
'*****************Second programme************************'
Sub suite
	'On Error Resume Next
	Dim dt11, dt22, tp2
	Dim strnom2
	dt11 = #05-19-2013#
	tp2 = #12:15#
	strnom2 = " conseil syndical"
	dt22 = DateDiff("d",dt1,Date())
	if (dt22 > 0) or ( dt22< -4) then Exit Sub
	if (dt22 <> 0) then
		msgbox "Vous avez RDV le: " & dt11 & " à " & tp2 & " dans " & dt22 & "jours" & " avec 26le " & strnom2 ,vbOkOnly,"ici le tire"
	else
		msgbox "vous avez RDV aujourd'hui" & " à " & tp2 & " avec le " & strnom2 ,vbOkOnly,"ici le tire"
	end If
End Sub
0
ipvirgul Messages postés 9 Date d'inscription mardi 16 avril 2013 Statut Membre Dernière intervention 29 septembre 2014
27 avril 2013 à 14:39
je remercie f894009 de ces idées par contre le programme ne fonctionne toujours pas comme je l'aurai souhaité.
J'ai peut être pas donné toutes les précisions un RDV passé ne doit plus s'afficher ainsi que les RDV de plus de 3-4 jour d'où la condition" if (dt2 > 0) or ( dt2< -4) Then "
la formule: "dt2 = DateDiff("d",dt1,Date()). " Si vous avez d'autre idées je suis toujours preneur mercis a vous tous je continue a chercher je ne lâche jamais un os
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
27 avril 2013 à 18:14
Bonjour,

Quel est l'interet de la sub routine suite, si vos criteres de choix ne sont que des ecarts de dates?????
0
ipvirgul Messages postés 9 Date d'inscription mardi 16 avril 2013 Statut Membre Dernière intervention 29 septembre 2014
27 avril 2013 à 20:12
Tout d'abord merci
1 'On Error Resume Next
2 '***************************premier programme********
3 Dim dt1, dt2, tp
4 Dim strnom
5 dt1 = #04-20-2013#
6 tp = #12:15#
7 strnom = " Dr Hussein"
8 '******************************************'
9 dt2 = DateDiff("d",dt1,Date())
10 if (dt2 > 0) or ( dt2< -4) then
11Call suite
12 end if
13if (dt2 <> 0) then
14msgbox "Vous avez RDV le: " & dt1 & " à " & tp & " dans " & dt2 & "jours" & " avec le " & strnom ,vbOkOnly,"ici le tire"
15else
16msgbox "vous avez RDV aujourd'hui" & " à " & tp & " avec le " & strnom ,vbOkOnly,"ici le tire"
17end if
18if dt2 > 0 then
19 `*************************************
20end if
21wscript.quit
22'****************************second programme******
23Sub suite
24'On Error Resume Next
25Dim dt11, dt22, tp2
26Dim strnom2
27dt11 = #04-28-2013#
28tp2 = #12:15#
29strnom2 = " Dr casanova"
30'******************************************
31dt22 = DateDiff("d",dt11,Date())
32if (dt22 > 0) or ( dt22< -4) then wscript.quit
33if (dt22 <> 0) then
34msgbox "Vous avez RDV le: " & dt11 & " à " & tp2 & " dans " & dt22 & "jours" & " avec le " & strnom2 ,vbOkOnly,"ici le tire"
35else
36msgbox "vous avez RDV aujourd'hui" & " à " & tp2 & " avec le " & strnom2 37,vbOkOnly,"ici le tire"
38end if
39End sub



Vous m'avez déjà bien aidé avec votre « call suite et sub suite » mais il reste encore un petit problème.

Le renvoi que je cherche a réaliser c'est pour aligner plusieurs prog a la suite sur la même feuille avec des dates différentes.

La date dt1 ligne 5 est la date d'un RDV passé, premier prog. Donc pas d'ouverture de se programme.
La commande « call suite » permet dans un premier temps d'évincer ce prog, c'est pour quoi la msgbox du second prog s'ouvre et m'alerte sur le second RDV.


Sauf que, lorsque je click sur OK de cette msgbox second le message de la première s'ouvre a son tour c'est ce que je ne veux pas.

Pour le moment je n'ai pas trouvé de solution mais je chercherai.

Merci de votre aide
Cordialement
Jean Pierre
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 28/04/2013 à 09:30
Bonjour,

pour pallier momentanément a ce soucis, inserez wscript.quit apres call suite.
Par contre je ne vois pas comment vous trouvez un nombre negatif de jours avec votre formule sur les dates anterieures a aujourd'hui: dt2 = DateDiff("d",dt1,Date()) , la date d'aujourd'hui etant toujours superieure a hier. dt2 = DateDiff("d",Date(),dt1) serait plus appropriee et le nombre de jours pour les dates posterieures sera positif.

if (dt2 > 0) or ( dt2< -4) Then: : -13 est < a -4

if (dt2 <> 0) then: -13 et 40 sont <> de 0, c'est pour cela que vous avez la deuxieme boite a message

il faut repenser les tests sur les ecarts de dates.

questions: les dates de RDV proviennent d'ou (vous ne les entrez pas a la main en dur dans le programme!!!) , cela aiderait a vous aidez

A+
0
ipvirgul Messages postés 9 Date d'inscription mardi 16 avril 2013 Statut Membre Dernière intervention 29 septembre 2014
28 avril 2013 à 18:22
Merci de votre aide mon programme est terminé et je suis satisfait, je le joint avec quelques remarques.
1'On Error Resume Next
2'**def variable*********************premier programme*******************
3Dim dt1, dt2, tp
4Dim strnom
5dt1 = #04-30-2013#
6tp = #12:15#
7strnom = " Dr Hussein"
8'**************execution prog****************************'
9dt2 = DateDiff("d",Date(),dt1)
10 'Wscript.echo dt2 « pour verifier où j'en suis »
11if (dt2 < 0) or (dt2 > 4) then 'wscript.quit
12 Call suite
13wscript.quit
14elseif (1 = dt2 < 4) and (dt2 <> 0) then
15msgbox "Vous avez RDV le: " & dt1 & " à " & tp & " dans " & dt2 & "jours" & " avec le " & strnom ,vbOkOnly,"prog 1er"
16elseif (dt2 = 0) then
17msgbox "vous avez RDV aujourd'hui" & " à " & tp & " avec le " & strnom ,vbOkOnly,"prog 1er"
18end if
19 call suite

20'**********************second programme***************
21Sub suite
'Dim dt11, dt22, tp2
'Dim strnom2
'dt11 = #04-30-2013#
'tp2 = #12:15#
'strnom2 = " conseil syndical"
27'******************************************'
'dt22 = DateDiff("d",Date(),dt11)
29Wscript.echo dt22
'if (dt22 < 0) or (dt22 > 4) then 'wscript.quit
'end if
'if (1 = dt22 < 4) and (dt22 <> 0) then
33msgbox "Vous avez RDV le: " & dt11 & " à " & tp2 & " dans " & dt22 & "jours" & " avec le " & strnom2 ,vbOkOnly,"prog 2éme"
34elseif (dt22 = 0) then
'msgbox "vous avez RDV aujourd'hui" & " à " & tp2 & " avec le " & strnom2 ,vbOkOnly,"prog 2ème"
36end if
37End sub
38'wscript.quit

J'ai modifié les tests sur les écarts de dates en utilisant des valeurs positives.
Le premier prog seul fonctionne correctement dans toutes les situations.
Pour le second prog après plusieurs testes et observations j'ai réactivé tout le prog 2 et rajouté en ligne 19 « call suite » car la lecture s'arrêtait après la ligne 17 msgbox.

J'ai placé en ligne 10et29 Les fonctions Wscript .echo pour observer pendant mes testes l'état dt2 et dt22, peuvent en suite être supprimé ou désactivé.
Par ailleurs, en ligne 13 et 38 les commandes WScript.quit ne m'on pas parue utiles c'est pourquoi je les ai désactivées.
Je pense avoir effectué les testes les plus essentiel l'ensemble a l'air de bien fonctionné.

Pour répondre votre question si je rentre les RDV a la main la réponse est oui c'est pourquoi
def variable sont entre deux ligne ** merci encor a vous.
Pour mes début en programmation c'est chaud.

Cordialement
Jean pierre
0