Répéter une macro sur plusieurs lignes
Résolu
Agroeco77
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
Agroeco77 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Agroeco77 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
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 :
Agroeco77
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
-
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
-
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