Bonjour à tous,
Je suis tombé sur ce sujet et en lisant j'ai trouvé un code qu'avait posté un internaute et je l'ai légèrement modifié.
	
	
	
	
	
		
J'ai utilisé le code car cela répondait parfaitement à mon besoin. Malheureusement, quand je place le remplissage à la ligne 4, colonne 3, il me manque des chiffres au moment du remplissage.
Par exemple,
	
	
	
	
	
		
et
	
	
	
	
	
		
Je suis censé avoir un remplissage des chiffres de 1 à 13 ordonné aléatoirement sur la plage choisie. Malheureusement, il n'y a que 9 chiffres qui apparaissent. Savez-vous comment faire ?
Je vous remercie par avance de votre retour.
Je vous mets en PJ la pièce jointe.
Bien à vous
Benam
	
		
			
		
		
	
				
			Je suis tombé sur ce sujet et en lisant j'ai trouvé un code qu'avait posté un internaute et je l'ai légèrement modifié.
		Code:
	
	
	Sub TriAleatoireConditionnel()
 
nbrItem = 13
 
ReDim t(1 To nbrItem)
 
For i = 1 To nbrItem
 t(i) = i
Next
 
Randomize Timer
 
For i = 1 To nbrItem
    A = i 'sujet A
 'inverser le choix du sujet A avec le choix d'un autre sujet choisi aleatoirement
 ok = False
 While ok = False
 
  'choisir sujet B different de sujet A
   B = A
  While B = A
   B = Int(nbrItem * Rnd) + 1
  Wend
 
  'Inversion conditionnelle
  'inverser leurs choix a la condition de ne pas se choisir soi-meme
  If t(B) <> A And t(A) <> B Then
   tmp = t(A):  t(A) = t(B):  t(B) = tmp
   ok = True
  End If
 
 Wend
 
Next
 
For i = 5 To nbrItem
 Cells(i, 3).Value = t(i)
Next
 
End Sub
Sub TriAleatoireConditionnel1()
 
nbrItem = 13
 
ReDim t(1 To nbrItem)
 
For i = 1 To nbrItem
 t(i) = i
Next
 
Randomize Timer
 
For i = 1 To nbrItem
    A = i 'sujet A
 'inverser le choix du sujet A avec le choix d'un autre sujet choisi aleatoirement
 ok = False
 While ok = False
 
  'choisir sujet B different de sujet A
   B = A
  While B = A
   B = Int(nbrItem * Rnd) + 1
  Wend
 
  'Inversion conditionnelle
  'inverser leurs choix a la condition de ne pas se choisir soi-meme
  If t(B) <> A And t(A) <> B Then
   tmp = t(A):  t(A) = t(B):  t(B) = tmp
   ok = True
  End If
 
 Wend
 
Next
 
For i = 5 To nbrItem
 Cells(i, 7).Value = t(i)
Next
 
End Sub
	J'ai utilisé le code car cela répondait parfaitement à mon besoin. Malheureusement, quand je place le remplissage à la ligne 4, colonne 3, il me manque des chiffres au moment du remplissage.
Par exemple,
		Code:
	
	
	nbrItem = 13
	et
		Code:
	
	
	For i = 5 To nbrItem
 Cells(i, 7).Value = t(i)
Next
	Je suis censé avoir un remplissage des chiffres de 1 à 13 ordonné aléatoirement sur la plage choisie. Malheureusement, il n'y a que 9 chiffres qui apparaissent. Savez-vous comment faire ?
Je vous remercie par avance de votre retour.
Je vous mets en PJ la pièce jointe.
Bien à vous
Benam