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é
- Filtre excel ne fonctionne pas sur toutes les lignes ✓ - Forum Excel
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