Problème de macro aléatoire
Bonjour à tous,
Je me suis inscrit aujourd’hui pour essayer de m’améliorer sur Excel et les macros.
Je me considère comme un débutant bien que j’utilise beaucoup Excel et Word pour mes activités annexes (Sport, Enseignement, Association, Soutien Scolaire,). En fait, je suis autodidacte avec toutes les mauvaises habitudes que cela implique.
Je suis sur un Excel intégré à un office pro plus 2019 ; je réalise des classeurs et, quand vient la nécessité d’une macro, les problèmes arrivent très vite surtout quand je veux en modifier le code.
Voici mon premier problème :
Je réalise un Excel permettant de créer 40 équipes de deux pour un tournois de pétanque.
J’ai donc en colonne B, une liste de 80 noms que je saisis puis, en colonne A, 1 à 80.
J’ai utilisé une macro aléatoire et je l’ai adaptée pour 80 participants et pour positionner de façon aléatoire les numéros en face de chaque nom.
Avec un RECHERCHEV, je constitue mes équipes de deux ; pour le déroulement du tournoi et le classement à l’issue, j’ai réussi à me débrouiller.
La macro utilisée est celle-ci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| Option Explicit
Sub Aleatoire()
Dim plage As Range, cel As Range, alea As Double
Set plage = Range("A1:A80")
plage.Value = ""
If plage.Count > 80 Then Exit Sub
Randomize
For Each cel In plage
1 alea = WorksheetFunction.RandBetween(1, 80)
If Application.CountIf(plage, alea) Then GoTo 1 Else cel = alea
Next
End Sub |
Le Problème:
Si je n’ai que 40 participants, il est fastidieux de rentrer à chaque fois dans la macro pour changer les données de plage.
Ma question :
Comment puis-je faire pour modifier la macro à partir de ma feuille Excel si je rentre un nombre donné de participants ?
Je vous remercie de m’accueillir dans le Forum et, d’avance, un grand merci pour votre aide.
Gegepel
Comment puis-je faire pour modifier la macro à partir de ma feuille Excel si je rentre un nombre donné de par
Bonjour,
Un Grand Merci pour l'aide que tu m'apportes.
La macro fonctionne : les 40 participants sont sélectionnés. je n'aurais pas trouvé la solution tout seul car je maîtrise peu le code.
Pour la constitution des équipes de deux, les 40 participants se répartissent de façon anarchique dans les 40 équipes disponibles au lieu des 20 premières.
je pense pouvoir résoudre ça moi-même !!??
Merci encore ; c'est super d'avoir quelqu'un qui prend de son temps pour vous aider.
A +, Peut-être
Comment puis-je faire pour modifier la macro à partir de ma feuille Excel si je rentre un nombre donné de par
Bonjour,
Une petite chose :
J'ai placé la variable Derlig dans la ligne :
Code:
alea = WorksheetFunction.RandBetween(1, Derlig)
car, lors du tirage au sort, la macro allait me chercher des numéros compris entre 41 et 80 ; cela expliquait la répartition anarchique sur les 40 équipes disponibles
Maintenant, cela fonctionne parfaitement : les 40 participants se répartissent sur les 20 premières équipes.
C'est parfait ! merci, pour m'avoir aiguillé.
CRDT