Répéter une macro sur plusieurs lignes

[Résolu/Fermé]
Signaler
Messages postés
2
Date d'inscription
jeudi 1 mars 2018
Statut
Membre
Dernière intervention
2 mars 2018
-
Messages postés
2
Date d'inscription
jeudi 1 mars 2018
Statut
Membre
Dernière intervention
2 mars 2018
-
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

Messages postés
33497
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 septembre 2021
3 722
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


Cordialement, 
Jordane                                                                 
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

Messages postés
2
Date d'inscription
jeudi 1 mars 2018
Statut
Membre
Dernière intervention
2 mars 2018

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

Agroeco77
Messages postés
493
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
26 décembre 2020
32
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
Messages postés
33497
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 septembre 2021
3 722
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....