PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 8 févr. 2007 à 17:08
salut,
commence ton rnd... + 8
besoin de code? mets nous le tien ;)
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
lispo
Messages postés49Date d'inscriptiondimanche 2 octobre 2005StatutMembreDernière intervention 1 septembre 2008 8 févr. 2007 à 17:20
'''''''''''''''''''''''''''''''''''''''
' ma fonction hasard
Public Function Hasard(Min As Integer, Max As Integer) As Integer
Hasard = Int((Max * Rnd) + Min)
End Function
'''
'''choisie un nom au hasard
Function Les_Nom()
Dim Valeur As String
Randomize
Valeur = Valeur & Range("C55").Offset(Hasard(1, 32), 0) & vbCrLf
Range("G49").Value = Left(Valeur, Len(Valeur) - 2)
nom = Range("G49").Value
End Function
'''
'''
Private Sub CmdApply_1_Click()
'''je met les noms dans les textbox
Do '''nom n°1
Index_1 = 0
Call Les_Nom
Txtb8_1.Value = nom
liste_Nom(1) = Txtb8_1.Value
Index_1 = Index_1 + 1
Call Les_Nom
''' if pour nom n°2
If nom <> liste_Nom(1) And Club <> Liste_Club(1) And poids = Liste_Poid(1) Then
Txtb8_2.Value = nom
liste_Nom(2) = Txtb8_2.Value
Index_1 = Index_1 + 1
Else
Index_1 = Index_1 - 2
End If
Loop While Index_1 <> 2
End Sub
'''maintenant je voudrais qu'il repete la selection sans les deux premier mot et ainsi de suite
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 8 févr. 2007 à 17:45
umm...
avec un param?
Public Function Hasard(Min As Integer, Max As Integer) As Integer
Hasard = Int((Max * Rnd) + Min)
End Function
'''
'''choisie un nom au hasard
Function Les_Nom(iVal As Integer)
Dim Valeur As String
Valeur = Valeur & Range("C55").Offset(Hasard(iVal, 32), 0) & vbCrLf
Range("G49").Value = Left(Valeur, Len(Valeur) - 2)
nom = Range("G49").Value
End Function
'''
'''
Private Sub CmdApply_1_Click()
Randomize
'''je met les
noms dans les textbox
Do '''nom n°1
Index_1 = 0
Call Les_Nom(1)
Txtb8_1.Value = nom
liste_Nom(1) = Txtb8_1.Value
Index_1 = Index_1 + 1
Call Les_Nom(8)
''' if pour nom
n°2
If nom <> liste_Nom(1) And Club
<> Liste_Club(1)
And poids =
Liste_Poid(1) Then
Txtb8_2.Value = nom
liste_Nom(2) = Txtb8_2.Value
Index_1 = Index_1 + 1
Else
Index_1 = Index_1 - 2
End If
Loop While Index_1 <> 2
End Sub
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 8 févr. 2007 à 22:21
re,
umm, j'ai modifié pour le principe
par contre je ne comprends pas :
Valeur = Valeur & Range("C55").Offset(Hasard(1, 32), 0) & vbCrLf
pourquoi valeur reçoit lui-même & ...., alors que lui-même est vide?
et pourquoi suivi d'un retour chariot?
bref, çà donne çà :
Function Les_Nom()
Dim Valeur As String, iRes As Integer
Randomize
Do
iRes = Hasard(1, 32)
Valeur = Range("C55").Offset(iRes, 0)
Loop Until LenB(Valeur) > 0
Range("C55").Offset(iRes, 0) = vbNullString
nom = Valeur
End Function
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
lispo
Messages postés49Date d'inscriptiondimanche 2 octobre 2005StatutMembreDernière intervention 1 septembre 2008 8 févr. 2007 à 23:32
Décidément je m’en sortirais pas de ce problème
La correction que tu as faite fonctionne bien pendant 2 a 3 Click puis il bug
Peu être que j’ai fait une connerie en recopiant
Merci
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Ps : désole de te faire perdre ton temps avec mes futilité
'-------------------------
Public Function Hasard(Min As Integer, Max As Integer) As Integer
Hasard = Int((Max * Rnd) + Min)
End Function
'-------------------------------------
Function Les_Nom()
Dim Valeur As String, iRes As Integer
Randomize
Do
iRes = Hasard(1, 32)
Valeur = Range("C55").Offset(iRes, 0)
Loop Until LenB(Valeur) > 0
Range("C55").Offset(iRes, 0) = vbNullString
nom = Valeur
End Function
'------------------------------
Private Sub CmdApply_1_Click()
On Error GoTo Err_1
Call Les_Nom
Txtb8_1.Value = nom
Call Les_Nom
Txtb8_2.Value = nom
Call Les_Nom
Txtb8_3.Value = nom
Exit Sub
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 8 févr. 2007 à 23:57
tu peux faire une trace de "valeur" stp?
et "çà bug" veut dire quoi? tu as le msgbox "salut"?
dans ce cas remplace cette ligne par msgbox err.number & " : " & err.description
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 9 févr. 2007 à 00:06
Tu pourrais aussi te créer un tableau de 32 (ou 33...) éléments initialisé à 0.
À chaque fois que tu tires un numéro, tu vérifies si le tableau(numéro) est à 0 ou 1
S'il est à 1, il a déjà été choisi.
S'il est à 0, tu le mets à 1 et tu fais ce que tu veux de cette valeur.