Nouveau sur Excel-Pratique

Bonjour a tous , nouveau sur ce site depuis aujourd’hui et j’espère trouver de l'aide sur Excel-Pratique .

Je suis a la recherche d'une boucle " nombre aléatoire " a partir d'une cellule " C1 "ou est noté le nbre de participant pouvant aller jusqu'a 150. Sur le tableau ci-desous je ne parviens pas a lui indiquer la cellule pour faire la boucle "nombre aléatoire . Cette programmation a été faite Par AMADEUS posté le 7 mai 2010, car moi j'en suis incapable . merci de votre aide .

'Code initial Soft Excel Pratique

Sub Rempli()

Dim Temp As Integer, Existe As Boolean

Dim I As Integer, J As Integer

Dim Tableau(150) As Integer, RDest As Range

Set RDest = ActiveSheet.Range("a3:a150")

Application.ScreenUpdating = False

Randomize

For I = 1 To 150

Existe = True

While Existe

Temp = Int(150 * Rnd + 1)

For J = 1 To 150

If Temp = Tableau(J) Then

Existe = True

Exit For

Else

Existe = False

End If

Next J

Wend

Tableau(I) = Temp

Next I

For I = 1 To 150

RDest(I).Value = Tableau(I)

Next I

Application.ScreenUpdating = True

End Sub

Bonsoir Joan66 et

Comme je n'étais pas couché et que je suis passé par ici, voici ma réponse

Sub Remplir()
  Dim Ind As Integer, Temp As Integer
  Dim MaCollection As Collection, Nombre As Variant
  Dim Flg As Boolean
  Dim NbParticipant As Integer

  ' Initialiser MaCollection
  Set MaCollection = New Collection
  ' Récupérer le nombre de participants dans la cellule C1
  NbParticipant = Range("C1")
  ' Tirage aléatoire d'un chiffre de 1 ) NbParticipant
  Randomize
  ' Pour chaque participant
  For Ind = 1 To NbParticipant
    ' Lancer 1 tirage aléatoire
    Do
      ' Nombre aléatoire
      Temp = Int(NbParticipant * Rnd + 1)
      ' En cas d'erreur lors de l'ajout à la collection
      ' on continue le code
      On Error Resume Next
      ' Ajouter le chiffre à la collection
      MaCollection.Add CStr(Temp), CStr(Temp)
      ' Le chiffre existe déjà ?
      If Err.Number <> 0 Then
        ' Si oui,
        ' on efface l'erreur, et on met le flag à vrai pour recommencer
        Err.Clear: Flg = True
      Else
        ' sinon, flag à faux
        Flg = False
      End If
      On Error GoTo 0
    Loop While Flg = True
  Next Ind
  ' Réinitialiser l'indice
  Ind = 2 ' Commencer à la ligne 2
  ' Restituer la collection
  For Each Nombre In MaCollection
    Range("A" & Ind).Value = Nombre
    Ind = Ind + 1
  Next Nombre
  ' Effacer les variables objet
  Set MaCollection = Nothing
End Sub

J'espère que ce code correspondra à ta demande

A+

Bonjour et bienvenu(e)

Bonjour BrunoM45

A choisir

Merci je vais voir la Macro demain car je suis épuisé . merci pour votre aide . je vous tiens au courant demain

Bonjour Messieurs , votre aide est très efficace car toutes les Macros fonctionnent . Je vais maintenant, essayer, je dit bien essayer de mettre un compteur pour que la boucle se réalise 4 fois et colle les chiffres aléatoire une fois en AF , AG, AH, et une autre en AI , bien sur différent des une au autres . Une fois mon tableau terminé je le posterai sur le site .

Merci . Joan 066

Salut Joan66

Joan066 a écrit :

Bonjour Messieurs , votre aide est très efficace car toutes les Macros fonctionnent . Je vais maintenant, essayer, je dit bien essayer de mettre un compteur pour que la boucle se réalise 4 fois et colle les chiffres aléatoire une fois en AF , AG, AH, et une autre en AI , bien sur différent des une au autres . Une fois mon tableau terminé je le posterai sur le site .

Merci . Joan 066

Il te faut imbriquer la boucle existante dans celle pour les colonnes

For Col = 32 to 35
... le code ...
Next Col

Sans oublier d'utiliser

Cells(Ligne,Colonne).value

pour inscrire tes valeurs

A+

Rechercher des sujets similaires à "nouveau pratique"