Répéter une macro sur plusieurs lignes

Résolu/Fermé
Agroeco77 Messages postés 2 Date d'inscription jeudi 1 mars 2018 Statut Membre Dernière intervention 2 mars 2018 - Modifié le 1 mars 2018 à 22:48
Agroeco77 Messages postés 2 Date d'inscription jeudi 1 mars 2018 Statut Membre Dernière intervention 2 mars 2018 - 2 mars 2018 à 14:23
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
A voir également:

2 réponses

jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 4 649
Modifié le 1 mars 2018 à 22:56
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
Agroeco77 Messages postés 2 Date d'inscription jeudi 1 mars 2018 Statut Membre Dernière intervention 2 mars 2018
2 mars 2018 à 14:23
Bonjour, merci bcp c'est exactement ça! (dsl de n'avoir pas posté au bon endroit).
Très bonne journée,

Agroeco77
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
1 mars 2018 à 22:54
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
jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 4 649
1 mars 2018 à 22:58
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....
0