Bug dans une macro

  • Initiateur de la discussion Lucko
  • Date de début
L

Lucko

Guest
Bonjour,

Je m'appelle lucko. Je suis nouveau ici et je ne suis pas un expert en VBA mais j'aime bien Excel. À partir de codes trouvés sur Internet, je me suis bricolé un fichier de type keno à des fins de formation sur Excel. Après avoir lancé la macro un certain temps, le fichier fige et me renvoie un code d'erreur en soulignant en jaune tantôt tirage, tantôt erase v ( à tour de rôle). Je ne sais pas comment le corriger. Dès lors, la macro bloque. Y-a-t-il un moyen de régler le problème. Ci-joint le code et le fichier en question. De plus, y aurait-il une façon d'intégrer un compteur de tours pour connaître le nombre de fois que la macro a tourné avant de trouver la réponse recherchée. Merci.

Sub Tirage1()
Range("E8:N8").ClearContents
Tirage
End Sub

Sub Tirage2()
Dim ofs&, T
With [E8]
If Not IsEmpty([E8]) Then
T = .Value
.Cells = Empty
ofs = .End(xlUp).Offset(1).Row - 9
.Value = T
End If
End With
If ofs < 10 Then Tirage ofs
End Sub

Sub Tirage(Optional ofs&)
Dim i&, j&, n&, T, p(), v(), Cel As Range
Randomize
p = Array(Array("E2:N6", "E8:N8"))
For j = 0 To UBound(p)
For Each Cel In Range(p(j)(0))
If Not IsEmpty(Cel) Then n = n + 1: ReDim Preserve v(1 To n): v(n) = Cel.Value
Next
For i = n To 2 Step -1
T = v(1): v(1) = v(1 + Int(n * Rnd)): v(1 + Int(n * Rnd(0))) = T
Next
ReDim Preserve v(1 To 10)
Range(p(j)(1)).Offset(ofs) = v
Erase v
n = 0
Next

End Sub

Sub Recherche()
Dim ind As Integer

Do
Tirage
Loop Until ([d10]) >= ([T7])
End Sub
 

Pièces jointes

  • Keno 70.xlsm
    51.1 KB · Affichages: 62
L

Lucko

Guest
Re : Bug dans une macro

Bonjour JCGL.

Je viens d'essayer ton code mais cela bogue toujours. L'unique façon pour moi de débogger la macro est de redémarrer mon ordi. Je ne sais pas si cette info peut aider à comprendre le problème. Merci.
 
L

Lucko

Guest
Re : Bug dans une macro

Tu as raison. J'ai dû redémarrer mon ordi pour le faire fonctionner. Je m'en n'étais pas rendu compte... Désolé. Cela fonctionne très bien. Vraiment génial. Tu as du génie. Mille fois merci.
 

job75

XLDnaute Barbatruc
Re : Bug dans une macro

Bonjour Lucko, Jean-Claude,

Pas vu de bug mais on peut limiter le nombre de tirages :

Code:
Sub Recherche()
Dim limite As Long
limite = 1000 ' à adapter
Application.ScreenUpdating = False
[V9] = ""
Do
  Tirage
  [V9] = [V9] + 1
  If [V9] = limite Then MsgBox "Limite " & limite & " tirages !", 48: Exit Do
Loop Until ([D12]) >= ([T9])
End Sub
A+
 
L

Lucko

Guest
Re : Bug dans une macro

Bonjour Job,

L'idée est intéressante... C'est à explorer. Le bug survient après une utilisation de longue durée. Peut-être est-ce un problème de mémoire cache? Je ne le sais pas... Je crois que cela est dû à la macro.
 
L

Lucko

Guest
Re : Bug dans une macro

Je viens de faire plusieurs test avec les commandes CTRL + Pause. Le bug semble avoir disparu...pour le moment. C'est peut-être uniquement dû à mon ordi. Peut-on améliorer le code? Par exemple, trouver plus rapidement X combinaisons de 10 numéros car la macro carbure longtemps entre chaque réponse. J'en ai une idée maintenant grâce au compteur de Jean-Claude. Merci.
 
L

Lucko

Guest
Re : Bug dans une macro

J'ai retravaillé quelque peu la mise en forme de mon tableau en y ajoutant le compteur et une autre fonction, soit un petit drapeau, à l'aide de la mise en forme conditionnelle, à côté de la date qui représente la moyenne "possible" de la prochaine apparition du numéro. En fait, parfois Excel l'affiche et parfois Excel refuse de prendre en considération la cellule de la moyenne et le drapeau n'apparaît pas à côté de la moyenne. Dois-je bricoler la formule autrement?
 

Pièces jointes

  • Expérimentation Keno 70.xlsm
    52.5 KB · Affichages: 71
L

Lucko

Guest
Re : Bug dans une macro

Désolé d'insister mais mon bogue est revenu. (Voir explications plus haut) Toujours Erase ou Tirage souligné en jaune. Mon ordi fige. Je fais souvent des arrêts avec CTRL et Pause. Peut-il y avoir une corrélation avec cet événement?
 

JCGL

XLDnaute Barbatruc
Re : Bug dans une macro

Bonjour à tous,

Tu dois savoir que la martingale n'existe pas...
Sinon nous serions tous millionnaires.

Tes ajouts forcent XL à recalculer constamment les formules.
J'ai lancé la procédure sur 11 et je mettrais le nombre de tirages.

A+ à tous
 
L

Lucko

Guest
Re : Bug dans une macro

Bonjour Jean-Claude,

Je suis tout à fait d'accord avec toi sur la martingale. C'est une façon, par le biais de fichiers de ce genre, de mettre mes connaissances sur Excel en pratique. C'est plus stimulant qu'un tableau de budget ou autre...
 

Discussions similaires

Réponses
7
Affichages
327

Statistiques des forums

Discussions
312 219
Messages
2 086 369
Membres
103 197
dernier inscrit
sandrine.lacaussade@orang