Rapport de message :*
 

Re: selection aléatoire

Titre du sujet : Re: selection aléatoire
par JeanMarie le 18/01/2009 21:32:31

Bonsoir

Code à copier dans un module
Option Explicit

Sub AlimentRnd()
Dim I As Byte
Dim Ind1 As Byte
Dim Ind2 As Byte
Dim LimS As Byte

'Efface les données précédentes
Range("E5:M29").ClearContents

With Sheets("Feuil1")
   'Boucle sur les lignes par pas de 2
   For I = 5 To 29 Step 2
      If .Cells(I, 2) <> "" Then
         'Un choix a été fait dans la cellule Bi
         'Recherche la position de la catégorie dans la feuil2
         Ind1 = Application.Match(.Cells(I, 2), Sheets("Feuil2").Range("1:1"), 0)
         'Détermine la derniére ligne contenant un Aliement suivant la catégorie
         LimS = Sheets("Feuil2").Cells(65536, Ind1).End(xlUp).Row - 1
         'Ligne aléatoire
         Ind2 = Int((LimS * Rnd) + 2)
         'Bascule les données de la ligne vers le taleau
         .Range("E" & I) = Sheets("Feuil2").Cells(Ind2, Ind1)
         .Range("M" & I) = Sheets("Feuil2").Cells(Ind2, Ind1 + 1)
      End If
   Next I
End With
End Sub

  
@+Jean-Marie