Pour aider ma fille à apprendre ses tables, je voudrais faire un user form
comprenant 3 textbox "aa", "bb", "rr". Un + entre aa et bb, et un = entre bb
et rr. Dans les deux premier textbox se trouvent les chiffres à additionner
et dans le dernier le résultat à trouver. Un décompte sonore rythmera et
limitera le temps. Voila pour la présentation.
Les deux premiers textbox sont remplis comme suit :
Je souhaiterais que le temps soit décompté comme suit :
Application.OnTime tem + TimeValue("00:00:03"), "son"
Application.OnTime tem + TimeValue("00:00:06"), "son"
Application.OnTime tem + TimeValue("00:00:09"), "son"
Application.OnTime tem + TimeValue("00:00:10"), "son"
Application.OnTime tem + TimeValue("00:00:11"), "son"
Application.OnTime tem + TimeValue("00:00:12"), "son"
Application.OnTime tem + TimeValue("00:00:17"), "ir_inter"
(ceci est dans le code de l'userform)
Le décompte se passe bien, mais à la fin je voudrais tester le résultat
entré dans rr
Private Sub comp()
xx = aa.Value * 1 + bb.Value * 1
If xx = rr.Value * 1 Then GoTo ok
ir_inter
GoTo fin
ok:
tada
fin:
End Sub
Et là ça ne marche pas. Je ne sais pas comment après 17 secondes tester le
résultat en laissant l'user form actif.
Declare Function sndPlaySoundA Lib "Winmm.dll" _
(ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Sub son()
sndPlaySoundA "D:\mes documents\tout document\son\start", 1
End Sub
Sub ir_inter()
sndPlaySoundA "D:\mes documents\tout document\son\ir_inter", 1
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
nicolas S2
en fait, mon problème est que je ne sais pas comment faire pour que l'instruction -Application.OnTime now + TimeValue("00:00:03"), "ma procedure"- ouvre le code désiré:
Si "ma procedure" est dans un module cela marche. Si "ma procedure" est dans le code de l'userform cela ne marche pas (impossible de trouver la macro "D:mes documentsclasseur2.xls'!ma procedure'.) donc pas de possibilité d'intervenir sur un élément de l'userform.
"nicolas S2" a écrit dans le message de news: 44def478$0$3610$
Bonjour,
Pour aider ma fille à apprendre ses tables, je voudrais faire un user form comprenant 3 textbox "aa", "bb", "rr". Un + entre aa et bb, et un = entre bb et rr. Dans les deux premier textbox se trouvent les chiffres à additionner et dans le dernier le résultat à trouver. Un décompte sonore rythmera et limitera le temps. Voila pour la présentation.
Les deux premiers textbox sont remplis comme suit :
Je souhaiterais que le temps soit décompté comme suit :
temp = now
Application.OnTime tem + TimeValue("00:00:03"), "son" Application.OnTime tem + TimeValue("00:00:06"), "son" Application.OnTime tem + TimeValue("00:00:09"), "son" Application.OnTime tem + TimeValue("00:00:10"), "son" Application.OnTime tem + TimeValue("00:00:11"), "son" Application.OnTime tem + TimeValue("00:00:12"), "son"
Application.OnTime tem + TimeValue("00:00:17"), "ir_inter" (ceci est dans le code de l'userform)
Le décompte se passe bien, mais à la fin je voudrais tester le résultat entré dans rr
Private Sub comp()
xx = aa.Value * 1 + bb.Value * 1
If xx = rr.Value * 1 Then GoTo ok
ir_inter
GoTo fin
ok:
tada
fin:
End Sub
Et là ça ne marche pas. Je ne sais pas comment après 17 secondes tester le résultat en laissant l'user form actif.
Declare Function sndPlaySoundA Lib "Winmm.dll" _ (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Sub son() sndPlaySoundA "D:mes documentstout documentsonstart", 1 End Sub
Sub ir_inter() sndPlaySoundA "D:mes documentstout documentsonir_inter", 1 End Sub
Merci de votre aide (si je peux l'être) et bon dimanche
en fait, mon problème est que je ne sais pas comment faire pour que
l'instruction -Application.OnTime now + TimeValue("00:00:03"), "ma
procedure"- ouvre le code désiré:
Si "ma procedure" est dans un module cela marche.
Si "ma procedure" est dans le code de l'userform cela ne marche pas
(impossible de trouver la macro "D:mes documentsclasseur2.xls'!ma
procedure'.) donc pas de possibilité d'intervenir sur un élément de
l'userform.
"nicolas S2" <NmcnSsaillardP@libertysurf.fr> a écrit dans le message de
news: 44def478$0$3610$626a54ce@news.free.fr...
Bonjour,
Pour aider ma fille à apprendre ses tables, je voudrais faire un user form
comprenant 3 textbox "aa", "bb", "rr". Un + entre aa et bb, et un = entre
bb et rr. Dans les deux premier textbox se trouvent les chiffres à
additionner et dans le dernier le résultat à trouver. Un décompte sonore
rythmera et limitera le temps. Voila pour la présentation.
Les deux premiers textbox sont remplis comme suit :
Je souhaiterais que le temps soit décompté comme suit :
temp = now
Application.OnTime tem + TimeValue("00:00:03"), "son"
Application.OnTime tem + TimeValue("00:00:06"), "son"
Application.OnTime tem + TimeValue("00:00:09"), "son"
Application.OnTime tem + TimeValue("00:00:10"), "son"
Application.OnTime tem + TimeValue("00:00:11"), "son"
Application.OnTime tem + TimeValue("00:00:12"), "son"
Application.OnTime tem + TimeValue("00:00:17"), "ir_inter"
(ceci est dans le code de l'userform)
Le décompte se passe bien, mais à la fin je voudrais tester le résultat
entré dans rr
Private Sub comp()
xx = aa.Value * 1 + bb.Value * 1
If xx = rr.Value * 1 Then GoTo ok
ir_inter
GoTo fin
ok:
tada
fin:
End Sub
Et là ça ne marche pas. Je ne sais pas comment après 17 secondes tester le
résultat en laissant l'user form actif.
Declare Function sndPlaySoundA Lib "Winmm.dll" _
(ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Sub son()
sndPlaySoundA "D:mes documentstout documentsonstart", 1
End Sub
Sub ir_inter()
sndPlaySoundA "D:mes documentstout documentsonir_inter", 1
End Sub
en fait, mon problème est que je ne sais pas comment faire pour que l'instruction -Application.OnTime now + TimeValue("00:00:03"), "ma procedure"- ouvre le code désiré:
Si "ma procedure" est dans un module cela marche. Si "ma procedure" est dans le code de l'userform cela ne marche pas (impossible de trouver la macro "D:mes documentsclasseur2.xls'!ma procedure'.) donc pas de possibilité d'intervenir sur un élément de l'userform.
"nicolas S2" a écrit dans le message de news: 44def478$0$3610$
Bonjour,
Pour aider ma fille à apprendre ses tables, je voudrais faire un user form comprenant 3 textbox "aa", "bb", "rr". Un + entre aa et bb, et un = entre bb et rr. Dans les deux premier textbox se trouvent les chiffres à additionner et dans le dernier le résultat à trouver. Un décompte sonore rythmera et limitera le temps. Voila pour la présentation.
Les deux premiers textbox sont remplis comme suit :
Je souhaiterais que le temps soit décompté comme suit :
temp = now
Application.OnTime tem + TimeValue("00:00:03"), "son" Application.OnTime tem + TimeValue("00:00:06"), "son" Application.OnTime tem + TimeValue("00:00:09"), "son" Application.OnTime tem + TimeValue("00:00:10"), "son" Application.OnTime tem + TimeValue("00:00:11"), "son" Application.OnTime tem + TimeValue("00:00:12"), "son"
Application.OnTime tem + TimeValue("00:00:17"), "ir_inter" (ceci est dans le code de l'userform)
Le décompte se passe bien, mais à la fin je voudrais tester le résultat entré dans rr
Private Sub comp()
xx = aa.Value * 1 + bb.Value * 1
If xx = rr.Value * 1 Then GoTo ok
ir_inter
GoTo fin
ok:
tada
fin:
End Sub
Et là ça ne marche pas. Je ne sais pas comment après 17 secondes tester le résultat en laissant l'user form actif.
Declare Function sndPlaySoundA Lib "Winmm.dll" _ (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Sub son() sndPlaySoundA "D:mes documentstout documentsonstart", 1 End Sub
Sub ir_inter() sndPlaySoundA "D:mes documentstout documentsonir_inter", 1 End Sub
Merci de votre aide (si je peux l'être) et bon dimanche
Michel Pierron
Bonjour Nicolas; J'ai utilisé la fonction Beep mais tu pourras facilement transposer. Sur ton UserForm, place un bouton Start pour lancer le décompte et dans ton module UserForm:
Private Declare Function Beep Lib "kernel32" _ (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long Private Ok As Boolean, S As Single
Private Sub CommandButton1_Click() aa.Value = Int((15 * Rnd) + 1) bb.Value = Int((15 * Rnd) + 1) rr.Value = "" rr.SetFocus CommandButton1.Enabled = False DoEvents S = Timer: Ok = True Call Counter End Sub
Private Sub Sirene(Good As Boolean) Dim i&, a%, b%, c% a = 500: b = 1000: c = 10 If Not Good Then a = 1000: b = 500: c = -c For i = a To b Step c Beep i, 50 Next i CommandButton1.Enabled = True End Sub
Private Sub rr_Change() If rr = "" Then Exit Sub If rr = Val(aa) + Val(bb) Then Ok = False DoEvents If Timer <= S + 14 Then Call Sirene(True) End If End Sub
Private Sub Counter() Dim i%, u% Do For i = 1 To 7 u = Choose(i, 3, 6, 9, 12, 13, 14, 15) If Timer - u = S Then Beep 1000, 100 If u = 15 Then Ok = False End If Next DoEvents Loop Until Ok = False If Timer >= S + 15 Then rr = Val(aa) + Val(bb) Call Sirene(False) End If End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Ok = False End Sub
MP
"nicolas S2" a écrit dans le message de news: 44def478$0$3610$
Bonjour,
Pour aider ma fille à apprendre ses tables, je voudrais faire un user form comprenant 3 textbox "aa", "bb", "rr". Un + entre aa et bb, et un = entre bb et rr. Dans les deux premier textbox se trouvent les chiffres à additionner et dans le dernier le résultat à trouver. Un décompte sonore rythmera et limitera le temps. Voila pour la présentation.
Les deux premiers textbox sont remplis comme suit :
Je souhaiterais que le temps soit décompté comme suit :
Application.OnTime tem + TimeValue("00:00:03"), "son" Application.OnTime tem + TimeValue("00:00:06"), "son" Application.OnTime tem + TimeValue("00:00:09"), "son" Application.OnTime tem + TimeValue("00:00:10"), "son" Application.OnTime tem + TimeValue("00:00:11"), "son" Application.OnTime tem + TimeValue("00:00:12"), "son"
Application.OnTime tem + TimeValue("00:00:17"), "ir_inter" (ceci est dans le code de l'userform)
Le décompte se passe bien, mais à la fin je voudrais tester le résultat entré dans rr
Private Sub comp()
xx = aa.Value * 1 + bb.Value * 1
If xx = rr.Value * 1 Then GoTo ok
ir_inter
GoTo fin
ok:
tada
fin:
End Sub
Et là ça ne marche pas. Je ne sais pas comment après 17 secondes tester le résultat en laissant l'user form actif.
Declare Function sndPlaySoundA Lib "Winmm.dll" _ (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Sub son() sndPlaySoundA "D:mes documentstout documentsonstart", 1 End Sub
Sub ir_inter() sndPlaySoundA "D:mes documentstout documentsonir_inter", 1 End Sub
Merci de votre aide (si je peux l'être) et bon dimanche
Bonjour Nicolas;
J'ai utilisé la fonction Beep mais tu pourras facilement transposer.
Sur ton UserForm, place un bouton Start pour lancer le décompte et dans ton
module UserForm:
Private Declare Function Beep Lib "kernel32" _
(ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
Private Ok As Boolean, S As Single
Private Sub CommandButton1_Click()
aa.Value = Int((15 * Rnd) + 1)
bb.Value = Int((15 * Rnd) + 1)
rr.Value = ""
rr.SetFocus
CommandButton1.Enabled = False
DoEvents
S = Timer: Ok = True
Call Counter
End Sub
Private Sub Sirene(Good As Boolean)
Dim i&, a%, b%, c%
a = 500: b = 1000: c = 10
If Not Good Then a = 1000: b = 500: c = -c
For i = a To b Step c
Beep i, 50
Next i
CommandButton1.Enabled = True
End Sub
Private Sub rr_Change()
If rr = "" Then Exit Sub
If rr = Val(aa) + Val(bb) Then
Ok = False
DoEvents
If Timer <= S + 14 Then Call Sirene(True)
End If
End Sub
Private Sub Counter()
Dim i%, u%
Do
For i = 1 To 7
u = Choose(i, 3, 6, 9, 12, 13, 14, 15)
If Timer - u = S Then
Beep 1000, 100
If u = 15 Then Ok = False
End If
Next
DoEvents
Loop Until Ok = False
If Timer >= S + 15 Then
rr = Val(aa) + Val(bb)
Call Sirene(False)
End If
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Ok = False
End Sub
MP
"nicolas S2" <NmcnSsaillardP@libertysurf.fr> a écrit dans le message de
news: 44def478$0$3610$626a54ce@news.free.fr...
Bonjour,
Pour aider ma fille à apprendre ses tables, je voudrais faire un user form
comprenant 3 textbox "aa", "bb", "rr". Un + entre aa et bb, et un = entre
bb et rr. Dans les deux premier textbox se trouvent les chiffres à
additionner et dans le dernier le résultat à trouver. Un décompte sonore
rythmera et limitera le temps. Voila pour la présentation.
Les deux premiers textbox sont remplis comme suit :
Je souhaiterais que le temps soit décompté comme suit :
Application.OnTime tem + TimeValue("00:00:03"), "son"
Application.OnTime tem + TimeValue("00:00:06"), "son"
Application.OnTime tem + TimeValue("00:00:09"), "son"
Application.OnTime tem + TimeValue("00:00:10"), "son"
Application.OnTime tem + TimeValue("00:00:11"), "son"
Application.OnTime tem + TimeValue("00:00:12"), "son"
Application.OnTime tem + TimeValue("00:00:17"), "ir_inter"
(ceci est dans le code de l'userform)
Le décompte se passe bien, mais à la fin je voudrais tester le résultat
entré dans rr
Private Sub comp()
xx = aa.Value * 1 + bb.Value * 1
If xx = rr.Value * 1 Then GoTo ok
ir_inter
GoTo fin
ok:
tada
fin:
End Sub
Et là ça ne marche pas. Je ne sais pas comment après 17 secondes tester le
résultat en laissant l'user form actif.
Declare Function sndPlaySoundA Lib "Winmm.dll" _
(ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Sub son()
sndPlaySoundA "D:mes documentstout documentsonstart", 1
End Sub
Sub ir_inter()
sndPlaySoundA "D:mes documentstout documentsonir_inter", 1
End Sub
Bonjour Nicolas; J'ai utilisé la fonction Beep mais tu pourras facilement transposer. Sur ton UserForm, place un bouton Start pour lancer le décompte et dans ton module UserForm:
Private Declare Function Beep Lib "kernel32" _ (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long Private Ok As Boolean, S As Single
Private Sub CommandButton1_Click() aa.Value = Int((15 * Rnd) + 1) bb.Value = Int((15 * Rnd) + 1) rr.Value = "" rr.SetFocus CommandButton1.Enabled = False DoEvents S = Timer: Ok = True Call Counter End Sub
Private Sub Sirene(Good As Boolean) Dim i&, a%, b%, c% a = 500: b = 1000: c = 10 If Not Good Then a = 1000: b = 500: c = -c For i = a To b Step c Beep i, 50 Next i CommandButton1.Enabled = True End Sub
Private Sub rr_Change() If rr = "" Then Exit Sub If rr = Val(aa) + Val(bb) Then Ok = False DoEvents If Timer <= S + 14 Then Call Sirene(True) End If End Sub
Private Sub Counter() Dim i%, u% Do For i = 1 To 7 u = Choose(i, 3, 6, 9, 12, 13, 14, 15) If Timer - u = S Then Beep 1000, 100 If u = 15 Then Ok = False End If Next DoEvents Loop Until Ok = False If Timer >= S + 15 Then rr = Val(aa) + Val(bb) Call Sirene(False) End If End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Ok = False End Sub
MP
"nicolas S2" a écrit dans le message de news: 44def478$0$3610$
Bonjour,
Pour aider ma fille à apprendre ses tables, je voudrais faire un user form comprenant 3 textbox "aa", "bb", "rr". Un + entre aa et bb, et un = entre bb et rr. Dans les deux premier textbox se trouvent les chiffres à additionner et dans le dernier le résultat à trouver. Un décompte sonore rythmera et limitera le temps. Voila pour la présentation.
Les deux premiers textbox sont remplis comme suit :
Je souhaiterais que le temps soit décompté comme suit :
Application.OnTime tem + TimeValue("00:00:03"), "son" Application.OnTime tem + TimeValue("00:00:06"), "son" Application.OnTime tem + TimeValue("00:00:09"), "son" Application.OnTime tem + TimeValue("00:00:10"), "son" Application.OnTime tem + TimeValue("00:00:11"), "son" Application.OnTime tem + TimeValue("00:00:12"), "son"
Application.OnTime tem + TimeValue("00:00:17"), "ir_inter" (ceci est dans le code de l'userform)
Le décompte se passe bien, mais à la fin je voudrais tester le résultat entré dans rr
Private Sub comp()
xx = aa.Value * 1 + bb.Value * 1
If xx = rr.Value * 1 Then GoTo ok
ir_inter
GoTo fin
ok:
tada
fin:
End Sub
Et là ça ne marche pas. Je ne sais pas comment après 17 secondes tester le résultat en laissant l'user form actif.
Declare Function sndPlaySoundA Lib "Winmm.dll" _ (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Sub son() sndPlaySoundA "D:mes documentstout documentsonstart", 1 End Sub
Sub ir_inter() sndPlaySoundA "D:mes documentstout documentsonir_inter", 1 End Sub
Merci de votre aide (si je peux l'être) et bon dimanche
nicolas S2
Merci Michel pour ta réponse, je n'ai fait qu'une lecture rapide (pas compris grand chose) demain, j'éclaircis ton code.
A plus "Michel Pierron" a écrit dans le message de news: OzX%
Bonjour Nicolas; J'ai utilisé la fonction Beep mais tu pourras facilement transposer. Sur ton UserForm, place un bouton Start pour lancer le décompte et dans ton module UserForm:
Private Declare Function Beep Lib "kernel32" _ (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long Private Ok As Boolean, S As Single
Private Sub CommandButton1_Click() aa.Value = Int((15 * Rnd) + 1) bb.Value = Int((15 * Rnd) + 1) rr.Value = "" rr.SetFocus CommandButton1.Enabled = False DoEvents S = Timer: Ok = True Call Counter End Sub
Private Sub Sirene(Good As Boolean) Dim i&, a%, b%, c% a = 500: b = 1000: c = 10 If Not Good Then a = 1000: b = 500: c = -c For i = a To b Step c Beep i, 50 Next i CommandButton1.Enabled = True End Sub
Private Sub rr_Change() If rr = "" Then Exit Sub If rr = Val(aa) + Val(bb) Then Ok = False DoEvents If Timer <= S + 14 Then Call Sirene(True) End If End Sub
Private Sub Counter() Dim i%, u% Do For i = 1 To 7 u = Choose(i, 3, 6, 9, 12, 13, 14, 15) If Timer - u = S Then Beep 1000, 100 If u = 15 Then Ok = False End If Next DoEvents Loop Until Ok = False If Timer >= S + 15 Then rr = Val(aa) + Val(bb) Call Sirene(False) End If End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Ok = False End Sub
MP
"nicolas S2" a écrit dans le message de news: 44def478$0$3610$
Bonjour,
Pour aider ma fille à apprendre ses tables, je voudrais faire un user form comprenant 3 textbox "aa", "bb", "rr". Un + entre aa et bb, et un = entre bb et rr. Dans les deux premier textbox se trouvent les chiffres à additionner et dans le dernier le résultat à trouver. Un décompte sonore rythmera et limitera le temps. Voila pour la présentation.
Les deux premiers textbox sont remplis comme suit :
Je souhaiterais que le temps soit décompté comme suit :
Application.OnTime tem + TimeValue("00:00:03"), "son" Application.OnTime tem + TimeValue("00:00:06"), "son" Application.OnTime tem + TimeValue("00:00:09"), "son" Application.OnTime tem + TimeValue("00:00:10"), "son" Application.OnTime tem + TimeValue("00:00:11"), "son" Application.OnTime tem + TimeValue("00:00:12"), "son"
Application.OnTime tem + TimeValue("00:00:17"), "ir_inter" (ceci est dans le code de l'userform)
Le décompte se passe bien, mais à la fin je voudrais tester le résultat entré dans rr
Private Sub comp()
xx = aa.Value * 1 + bb.Value * 1
If xx = rr.Value * 1 Then GoTo ok
ir_inter
GoTo fin
ok:
tada
fin:
End Sub
Et là ça ne marche pas. Je ne sais pas comment après 17 secondes tester le résultat en laissant l'user form actif.
Declare Function sndPlaySoundA Lib "Winmm.dll" _ (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Sub son() sndPlaySoundA "D:mes documentstout documentsonstart", 1 End Sub
Sub ir_inter() sndPlaySoundA "D:mes documentstout documentsonir_inter", 1 End Sub
Merci de votre aide (si je peux l'être) et bon dimanche
Merci Michel pour ta réponse, je n'ai fait qu'une lecture rapide (pas
compris grand chose) demain, j'éclaircis ton code.
A plus
"Michel Pierron" <michel.pierron@free.fr> a écrit dans le message de news:
OzX%23bV5vGHA.4296@TK2MSFTNGP06.phx.gbl...
Bonjour Nicolas;
J'ai utilisé la fonction Beep mais tu pourras facilement transposer.
Sur ton UserForm, place un bouton Start pour lancer le décompte et dans
ton module UserForm:
Private Declare Function Beep Lib "kernel32" _
(ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
Private Ok As Boolean, S As Single
Private Sub CommandButton1_Click()
aa.Value = Int((15 * Rnd) + 1)
bb.Value = Int((15 * Rnd) + 1)
rr.Value = ""
rr.SetFocus
CommandButton1.Enabled = False
DoEvents
S = Timer: Ok = True
Call Counter
End Sub
Private Sub Sirene(Good As Boolean)
Dim i&, a%, b%, c%
a = 500: b = 1000: c = 10
If Not Good Then a = 1000: b = 500: c = -c
For i = a To b Step c
Beep i, 50
Next i
CommandButton1.Enabled = True
End Sub
Private Sub rr_Change()
If rr = "" Then Exit Sub
If rr = Val(aa) + Val(bb) Then
Ok = False
DoEvents
If Timer <= S + 14 Then Call Sirene(True)
End If
End Sub
Private Sub Counter()
Dim i%, u%
Do
For i = 1 To 7
u = Choose(i, 3, 6, 9, 12, 13, 14, 15)
If Timer - u = S Then
Beep 1000, 100
If u = 15 Then Ok = False
End If
Next
DoEvents
Loop Until Ok = False
If Timer >= S + 15 Then
rr = Val(aa) + Val(bb)
Call Sirene(False)
End If
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Ok = False
End Sub
MP
"nicolas S2" <NmcnSsaillardP@libertysurf.fr> a écrit dans le message de
news: 44def478$0$3610$626a54ce@news.free.fr...
Bonjour,
Pour aider ma fille à apprendre ses tables, je voudrais faire un user
form comprenant 3 textbox "aa", "bb", "rr". Un + entre aa et bb, et un =
entre bb et rr. Dans les deux premier textbox se trouvent les chiffres à
additionner et dans le dernier le résultat à trouver. Un décompte sonore
rythmera et limitera le temps. Voila pour la présentation.
Les deux premiers textbox sont remplis comme suit :
Je souhaiterais que le temps soit décompté comme suit :
Application.OnTime tem + TimeValue("00:00:03"), "son"
Application.OnTime tem + TimeValue("00:00:06"), "son"
Application.OnTime tem + TimeValue("00:00:09"), "son"
Application.OnTime tem + TimeValue("00:00:10"), "son"
Application.OnTime tem + TimeValue("00:00:11"), "son"
Application.OnTime tem + TimeValue("00:00:12"), "son"
Application.OnTime tem + TimeValue("00:00:17"), "ir_inter"
(ceci est dans le code de l'userform)
Le décompte se passe bien, mais à la fin je voudrais tester le résultat
entré dans rr
Private Sub comp()
xx = aa.Value * 1 + bb.Value * 1
If xx = rr.Value * 1 Then GoTo ok
ir_inter
GoTo fin
ok:
tada
fin:
End Sub
Et là ça ne marche pas. Je ne sais pas comment après 17 secondes tester
le résultat en laissant l'user form actif.
Declare Function sndPlaySoundA Lib "Winmm.dll" _
(ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Sub son()
sndPlaySoundA "D:mes documentstout documentsonstart", 1
End Sub
Sub ir_inter()
sndPlaySoundA "D:mes documentstout documentsonir_inter", 1
End Sub
Merci Michel pour ta réponse, je n'ai fait qu'une lecture rapide (pas compris grand chose) demain, j'éclaircis ton code.
A plus "Michel Pierron" a écrit dans le message de news: OzX%
Bonjour Nicolas; J'ai utilisé la fonction Beep mais tu pourras facilement transposer. Sur ton UserForm, place un bouton Start pour lancer le décompte et dans ton module UserForm:
Private Declare Function Beep Lib "kernel32" _ (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long Private Ok As Boolean, S As Single
Private Sub CommandButton1_Click() aa.Value = Int((15 * Rnd) + 1) bb.Value = Int((15 * Rnd) + 1) rr.Value = "" rr.SetFocus CommandButton1.Enabled = False DoEvents S = Timer: Ok = True Call Counter End Sub
Private Sub Sirene(Good As Boolean) Dim i&, a%, b%, c% a = 500: b = 1000: c = 10 If Not Good Then a = 1000: b = 500: c = -c For i = a To b Step c Beep i, 50 Next i CommandButton1.Enabled = True End Sub
Private Sub rr_Change() If rr = "" Then Exit Sub If rr = Val(aa) + Val(bb) Then Ok = False DoEvents If Timer <= S + 14 Then Call Sirene(True) End If End Sub
Private Sub Counter() Dim i%, u% Do For i = 1 To 7 u = Choose(i, 3, 6, 9, 12, 13, 14, 15) If Timer - u = S Then Beep 1000, 100 If u = 15 Then Ok = False End If Next DoEvents Loop Until Ok = False If Timer >= S + 15 Then rr = Val(aa) + Val(bb) Call Sirene(False) End If End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Ok = False End Sub
MP
"nicolas S2" a écrit dans le message de news: 44def478$0$3610$
Bonjour,
Pour aider ma fille à apprendre ses tables, je voudrais faire un user form comprenant 3 textbox "aa", "bb", "rr". Un + entre aa et bb, et un = entre bb et rr. Dans les deux premier textbox se trouvent les chiffres à additionner et dans le dernier le résultat à trouver. Un décompte sonore rythmera et limitera le temps. Voila pour la présentation.
Les deux premiers textbox sont remplis comme suit :
Je souhaiterais que le temps soit décompté comme suit :
Application.OnTime tem + TimeValue("00:00:03"), "son" Application.OnTime tem + TimeValue("00:00:06"), "son" Application.OnTime tem + TimeValue("00:00:09"), "son" Application.OnTime tem + TimeValue("00:00:10"), "son" Application.OnTime tem + TimeValue("00:00:11"), "son" Application.OnTime tem + TimeValue("00:00:12"), "son"
Application.OnTime tem + TimeValue("00:00:17"), "ir_inter" (ceci est dans le code de l'userform)
Le décompte se passe bien, mais à la fin je voudrais tester le résultat entré dans rr
Private Sub comp()
xx = aa.Value * 1 + bb.Value * 1
If xx = rr.Value * 1 Then GoTo ok
ir_inter
GoTo fin
ok:
tada
fin:
End Sub
Et là ça ne marche pas. Je ne sais pas comment après 17 secondes tester le résultat en laissant l'user form actif.
Declare Function sndPlaySoundA Lib "Winmm.dll" _ (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Sub son() sndPlaySoundA "D:mes documentstout documentsonstart", 1 End Sub
Sub ir_inter() sndPlaySoundA "D:mes documentstout documentsonir_inter", 1 End Sub