Générer une liste aleatoirement sur Excel

judisant

XLDnaute Nouveau
Bonjour,

Dans le cadre de mon travail (finance), dans notre equipe nous avons une liste de fonds à contrôler/gérer. Quand une personne est absente, l'équipe prend en "back-up" les fonds de la personne en congés. Pour le moment, chaque personne a toujours la même liste de portefeuilles.

J'ai donc une liste de portefeuilles avec des caractéristiques qui ont plusieurs colonnes et la personne a qui j'attribue le portefeuille.
Pour générer aleatoirement les noms j'utilise cette macro :

Sub melange()
Dim melange As New Collection
Dim j%
For Each o In Selection
melange.Add o.Value
Next
k = melange.Count
Do While k > 0
If k > 0 Then
j = j + 1
i = Int((k * Rnd) + 1)
x = melange(i)
Cells(j, 1) = x
melange.Remove i
k = k - 1
End If
Loop
End Sub

Je voudrais perfectionner la macro car comme vous pouvez le voir dans l'exemple ci-joint, chaque personne a un fonds quotidien et un fonds hebdo, est-ce possible de générer aleatoirement la liste des noms pour qu'après la macro, chaque chargé ait de nouveau un fonds quotidien et hebdo mais différent d'avant.

Merci pour votre aide (exemple en pièce jointe) !
 

Pièces jointes

  • test.xls
    13.5 KB · Affichages: 56
  • test.xls
    13.5 KB · Affichages: 58
  • test.xls
    13.5 KB · Affichages: 54
Dernière édition:

R@chid

XLDnaute Barbatruc
Re : Générer une liste aleatoirement sur Excel

Bonjour,
pas sur d'avoir compris, et je ne sais pas faire des macros...
voir PJ
Amicalement
 

Pièces jointes

  • judisant.xls
    24 KB · Affichages: 66
  • judisant.xls
    24 KB · Affichages: 61
  • judisant.xls
    24 KB · Affichages: 61

judisant

XLDnaute Nouveau
Re : Générer une liste aleatoirement sur Excel

Bonjour,
pas sur d'avoir compris, et je ne sais pas faire des macros...
voir PJ
Amicalement

L'idée est très bonne ! Mais en tapan F9 sur ton exemple le fonds A passe d'un fonds action à un fonds obligataire. Or je veux que le fonds X garde les caractéristques de la colonne C et D, seul le nom de la personne change et il faut que chaque personne est le meme nombre de fonds et surtout la meme repartition (c'est à dire ici que chaque personne a un fonds quotidien et un fonds hebdo)
 

judisant

XLDnaute Nouveau
Re : Générer une liste aleatoirement sur Excel

Bonjour Rachid,

Je te joins un autre exemple plus complexe. On suppose qu'Aurelie est absente et je veux repartir la liste de ces portefeuilles sur les 3 personnes présentes de façon toujours aleatoire (chaque jour, chaque personne aura des fonds différents comme avec ta formule précédemment). Ici, j'ai compliqué un peu en modifiant la pérdiodicité, en rajoutant un fonds mensuel a chaque personne et un nombre impair de fonds. Ce que je souhaiterai :

- chaque personne a au moins un fonds quotidien, mensuel et hebdomadaire peu importe la catégorie, le code et le nom du fonds.
- une personne va avoir 4 portefeuilles, le lendemain ce sera une autre personne
- le fonds A conserve son code (1121) et sa périodicité (quo, hebdo, mens) quand la fonction alea est lancée

En fait c'est un turnover des portefeuilles tous les jours que je veux mais avec parcimonie sur la periodicité.

Si tu pouvais expliquer la formule aussi, que je comprenne un peu :)

PS : l'exemple est sous format Excel 2010 (a la maison) mais cela ne change rien sous 2003 (au bureau) j'espere
 

Pièces jointes

  • test.xlsx
    9.8 KB · Affichages: 43
  • test.xlsx
    9.8 KB · Affichages: 45
  • test.xlsx
    9.8 KB · Affichages: 50

R@chid

XLDnaute Barbatruc
Re : Générer une liste aleatoirement sur Excel

Bonjour @ tous,
J'arrive pas @ bien expliquer, c'est pour cela je ne réponds pas au demandes d'explication,
mettre cette formule en F2 et tirer vers le bas, ça va t'aider @ comprendre un peu...
Code:
=ENT((LIGNES($2:2)-1)/3)+1
LIGNES($2:2) vers le bas génère une suite des entiers 1, 2, 3, 4, .....,n
ENT() renvoie la partie entière d'un nombre...
@ toi de décortiquer pour bien comprendre...
Amicalement
 

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 227
Membres
103 159
dernier inscrit
FBallea