Répéter une macro sur plusieurs lignes

Résolu
Bonjour à tous,

J'ai besoin d'aide! Je suis dbutant pour les macro vba sur excel. J'ai pu récupérer un code qui me permet d'afficher sur une ligne au hasard des numéro entre 1 et 6 sans répétition.
Je voudrais le faire pour 60 lignes par exemple. Ce doit être tout simle mais je ne vois pas comment faire!... Si qqun s'aurait m'aidé... Merci d'avance! :D

Voici le code :

Sub Aleatoire()
Dim plage As Range, cel As Range, alea As Double


Set plage = Range("A1:F1")
plage.Value = ""
If plage.Count > 6 Then Exit Sub
Randomize

For Each cel In plage
1     alea = WorksheetFunction.RandBetween(1, 6)
If Application.CountIf(plage, alea) Then GoTo 1 Else cel = alea
Next

End Sub


Agroeco77

2 réponses

  1. Modérateur
    Bonjour,

    Il te suffit de faire une boucle
    un truc du genre :
    Sub Aleatoire()
      Dim sh as WorkSheet
      Dim plage As Range, cel As Range, alea As Double
      Set Sh = ActiveSheet
      For l = 1 to 60
        Set plage = Sh.Range("A" & l & ":F" & l)
        plage.Value = ""
        If plage.Count > 6 Then Exit Sub
        Randomize
        For Each cel In plage
       1   alea = WorksheetFunction.RandBetween(1, 6)
          If Application.CountIf(plage, alea) Then GoTo 1 Else cel = alea
        Next
      Next
    End Sub
    


    1. Bonjour, merci bcp c'est exactement ça! (dsl de n'avoir pas posté au bon endroit).
      Très bonne journée,

      Agroeco77
  2. Bonjour
    comme ceci

    Sub Aleatoire()
    Dim plage As Range, cel As Range, alea As Double
    Application.ScreenUpdating = False

    Set plage = Range("A1:BF1")
    plage.Value = ""
    If plage.Count > 60 Then Exit Sub
    Randomize

    For Each cel In plage
    1 alea = WorksheetFunction.RandBetween(1, 60)
    If Application.CountIf(plage, alea) Then GoTo 1 Else cel = alea
    Next
    Application.ScreenUpdating = True
    End Sub


    cdtl
    1. Modérateur
      Bonsoir,

      Il a demandé :

      afficher sur une ligne au hasard des numéro entre 1 et 6 sans répétition.
      Je voudrais le faire pour 60 lignes par exemple.

      Pas écrire des nombres aléatoire entre 1 et 60 sur 60 colonnes....