Pb. défilement de tirage toutes les 45 secondes
- Messages
- 2'415
- Excel
- 2019
- Inscrit
- 13/07/2017
- Emploi
- Formateur, animateur,tech.informatique
Bonjour toutes et tous,
Besoin d'un coup de pouce, merci d'avance
Difficulté:
-un tirage aléatoire de 1 à 99 chiffres toutes les 45 secondes
bon il exécute dès à présent
je vais repartir avec ses informations ci-dessous :
http://www.mdf-xlpages.com/modules/publisher/item.php?itemid=14
edit : re-modifier test 7 25082017 à 21h45
crdlt,
André
- Messages
- 2'415
- Excel
- 2019
- Inscrit
- 13/07/2017
- Emploi
- Formateur, animateur,tech.informatique
Re, bonsoir
je l'ai re-modifié apparemment c'est presque çà, j'ai réussi un petit peu est éliminé le superflu sur l'ancienne version, me reste à régler le temps d'affichage
crdlt,
André
Bonsoir,
Ce n'est pas la première fois que je vois ton fichier, mais j'en suis toujours dubitatif car je n'ai toujours pas compris où tu voulais finalement en arriver !
Et ton code éparpillé dans trop de modules, plein de scories non éliminées n'aide pas à définir une trajectoire !
Quoiqu'il en soit, pour diversifier un peu, voici une méthode pour tirer des nombre de 1 à 99, complètement étrangère à tout ce qu'on peut voir dans ton code.
Dim StopTirage As Boolean
Sub Tirage99(Optional Init As Boolean)
Static Tir(1 To 99) As Integer, n%
Dim tx$, k$, i%, x%
If Init Then
For i = 1 To 99
tx = tx & Chr(i + 32)
Next i
Randomize
For i = 1 To 99
x = Int(Len(tx) * Rnd + 1)
k = Mid(tx, x, 1)
Tir(i) = Asc(k) - 32
tx = Replace(tx, k, "")
Next i
n = 0
End If
If StopTirage Then Exit Sub
n = n + 1
MsgBox Tir(n)
If n < 99 Then Application.OnTime Now + TimeValue("00:00:45"), "Tirage99"
End Sub
Sub InitTirage()
StopTirage = False
Tirage99 True
End Sub
Sub ArrêtTirage()
StopTirage = True
End Sub
Sub RepriseTirage()
StopTirage = False
Tirage99
End Sub
La procédure principale est Tirage99. Elle est lancée par InitTirage : lors de ce lancement, elle effectue le tirage aléatoire des 99 numéros et le stocke dans un tableau, elle affiche le premier numéro tiré dans un message (mais peut aussi bien le mettre n'importe où...) et se relance pour afficher toutes les 45 s (ou le temps qu'on mettra...) les numéros tirés suivants.
On peut l'interrompre momentanément avec ArrêtTirage (qui intervient en passant une variable booléenne niveau module à True.
On reprend alors où on en était avec RepriseTirage (il convient de laisser un temps au moins équivalent à l'intervalle programmé entre deux affichages entre Arrêt et Reprise).
Si après un arrêt on relance InitTirage, le tirage sera complètement réinitialisé...
Cordialement.
- Messages
- 2'415
- Excel
- 2019
- Inscrit
- 13/07/2017
- Emploi
- Formateur, animateur,tech.informatique
Bonjour toutes et tous et bon week-end
Merci MFerrand, je vais tout refaire avec toutes les aides que vous m'avez mis depuis le début
Les Objectifs :
1/ Un tirage s'effectue toutes les 45 secondes est s'affiche sur la feuil1 cellule O3
[*] a) et l'enregistre le numéro sortie sur la feuil1 d'une colonne masqué par exemple
[*] b) le temps pourra être par la suite modifiable sur la même feuille par des bouton choix : 45sec. 1 min ou 2.
[*] c) des checkbox groupés aux nombres de 99 (si numéro a été tiré aléatoirement la checkbox sera coché)
2/ Une fois un chiffre aléatoirement tiré est visible sur la feuil1 dans la cellule O3, l'enregistrera sur la Feuil1 du classeur par exemple par incrémentation dans une colonne masqué , par exemple.
3/ Dès que les 99 tirages effectués et ainsi grâce au 99 tirages sur la Feuil1 recopié, le tirage annonce un message de fin msgbox par exemple ou fin de partie peu importe.
4/ le tirage toutes les xx secondes ne devra pas comporter de doublon, ni de chiffre 0 ou 100 puisqu'il doit être de 1 à 99.
5/ les cellules de la Feuil1 comportant les chiffres de 1 à 99 une checkbox c'est à dire 99 checkbox si le chiffre est tiré il sera systématiquement la checkbox sur coché est grisé
merci en tout cas, j'ai du travail à faire en espérant que cela puisse être réalisable même si je mettrais le temps j'y arriverai grâce à vos aides à toutes et vos suggestions
crdlt,
André