Bein en fait tout dépend de l'endroit où t'as défini le tableau Carte. Selon l'endroit où tu l'as mis, tu vas avoir un problème de portée, la fonction Timer ne pourra pas accéder au tableau, sois parcequ'il n'est pas accessible directement depuis le Timer, sois parcequ'il n'est défini que pour une fonction et auquel cas il est détruit à la sortie de celle-ci. Il reste une solution, le déclarer dans le Général, c'est-à-dire hors-fonction, de ta form ou de ton module (c'est à dire tout en haut). Tu peux l'y déclarer en tant que Public, (ce qui le rendra accessible depuis les autres feuilles) ou Global, mais seulement dans un module pour Global.
Dans ton timer, tu met un truc du genre :
Dim NCarte as Integer
Randomize 'Pour initialiser le générateur de nombres pseudos-aléatoirs
do NCarte = Int(Rnd() * 52)
if Carte(NCarte) = False Then 'La carte n'a pas encore été dsitribuée 'Ici la procédure pour distribuer une carte Carte(NCarte) = True 'On actualise le tableau car la carte vient d'être distribuée Exit Do 'C'est bon, on a réussi à distribuer une carte libre End if loop
Si la carte avait déjà été distribuée, la structure if est sautée, donc la boucle est répétée. Attention ! Si toutes les cartes ont déjà été distribuées la fonction tournera en boucle ! On pourrait s'en prémunir avec une strucure au début du Timer du genre :
For i = 0 to 51 if carte(i) = False then: exit for next
if i = 52 then 'On a parcouru toutes les cartes, et toutes ont déjà été distribuées; Exit Sub 'Donc on quite la structure, éventuellement on l'Enabled du Timer a false, et on affiche un message d'erreur, c'est selon tes goûts ! end if
Voilà voilà, dis-moi quand même ce que tu en pense, comme ça je serais sûr que tu ai reçu ce message...
|