Répéter une macro sur plusieurs lignes
Résolu
Agroeco77
Messages postés
2
Statut
Membre
-
Agroeco77 Messages postés 2 Statut Membre -
Agroeco77 Messages postés 2 Statut Membre -
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
A voir également:
- Randbetween vba
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Écrire plusieurs lignes dans une cellule excel mac - Guide
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Macro word - Guide
2 réponses
Bonjour,
Il te suffit de faire une boucle
un truc du genre :
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
cdtl
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
Très bonne journée,
Agroeco77