Remplir un tableau de manière aléatoire à partir d'une liste
Résolu/Fermé
sab
-
26 juil. 2017 à 15:50
Pier-3d Messages postés 67 Date d'inscription lundi 29 janvier 2007 Statut Membre Dernière intervention 18 mars 2024 - 31 juil. 2017 à 22:06
Pier-3d Messages postés 67 Date d'inscription lundi 29 janvier 2007 Statut Membre Dernière intervention 18 mars 2024 - 31 juil. 2017 à 22:06
A voir également:
- Remplir un tableau de manière aléatoire à partir d'une liste
- Liste déroulante excel - Guide
- Tableau croisé dynamique - Guide
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Organigramme a remplir word - Guide
- Annuaire portable gratuit a partir d'un nom - Forum Réseaux sociaux
8 réponses
via55
Messages postés
14405
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
25 avril 2024
2 703
26 juil. 2017 à 18:16
26 juil. 2017 à 18:16
Re,
Exemple 2 versions , l'une avec macro, l'autre par formules
https://mon-partage.fr/f/DSwt5QeE/
Cdlmnt
Via
Exemple 2 versions , l'une avec macro, l'autre par formules
https://mon-partage.fr/f/DSwt5QeE/
Cdlmnt
Via
Bonjour sab,
Pour ton 1er exercice :
Pour ton 2ème exercice :
Merci de me donner ton avis.
Cordialement
Pour ton 1er exercice :
Option Explicit Sub Test() Dim Liste, i As Byte, j As Byte Liste = Array("a", "b", "c", "d", "e", "f", "g", "h") Application.ScreenUpdating = False: Randomize For i = 1 To 10 For j = 1 To 15 Cells(i, j) = Liste(Int(8 * Rnd)) Next j Next i End Sub
Pour ton 2ème exercice :
Option Explicit Sub Test() Dim Liste1, Liste2, i As Byte, j As Byte Liste1 = Array("a", "b", "c", "d", "e", "f", "g", "h") Liste2 = Array("i", "j", "k", "l", "m", "n", "o", "p") Application.ScreenUpdating = False: Randomize For i = 1 To 10 For j = 1 To 15 If i Mod 2 = 1 Then Cells(i, j) = Liste1(Int(8 * Rnd)) Else Cells(i, j) = Liste2(Int(8 * Rnd)) End If Next j Next i End Sub
Merci de me donner ton avis.
Cordialement
via55
Messages postés
14405
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
25 avril 2024
2 703
26 juil. 2017 à 15:57
26 juil. 2017 à 15:57
Bonjour sab
Sois plus précise, je pense que tu veux parler d'une liste de 8 valeurs dans 8 cellules et d'un tableau de 10 x 15 cellules et non caractères !
Cela ferait donc un tableau de 150 cellules et tu voudrais le remplir aléatoirement avec les 8 valeurs, de manière à ce que les 150 cellules aient une valeur ?
Le mieux, poste un exemple de ton fichier avec sa liste et son tableau sur cjoint.com, fais créer un lien, copies le et reviens le coller ici
Cdlmnt
Via
Sois plus précise, je pense que tu veux parler d'une liste de 8 valeurs dans 8 cellules et d'un tableau de 10 x 15 cellules et non caractères !
Cela ferait donc un tableau de 150 cellules et tu voudrais le remplir aléatoirement avec les 8 valeurs, de manière à ce que les 150 cellules aient une valeur ?
Le mieux, poste un exemple de ton fichier avec sa liste et son tableau sur cjoint.com, fais créer un lien, copies le et reviens le coller ici
Cdlmnt
Via
mrjenkins
Messages postés
577
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
17 juillet 2018
102
26 juil. 2017 à 16:02
26 juil. 2017 à 16:02
Salut
petite macro pour te donner une idée. A retravailler selon tes besoins.
--
petite macro pour te donner une idée. A retravailler selon tes besoins.
Sub test()
Dim a(8)
a(0) = "a"
a(1) = "b"
a(2) = "c"
a(3) = "d"
a(4) = "e"
a(5) = "f"
a(6) = "g"
a(7) = "h"
For i = 1 To 10
For j = 1 To 15
r = Rnd * 8
Cells(i, j) = a(Int(r))
Next j
Next i
End Sub
--
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Super !
Pourrais-tu également me dire comment je pourrais avoir une ligne sur 2 provenant d'une liste 1 : a, b, c, d, e, f, g, h et 1 ligne sur 2 provenant d'une liste 2 : i, j, k, l, m, n, o, p.
Merci à l'avance de ton aide,
Sab
Pourrais-tu également me dire comment je pourrais avoir une ligne sur 2 provenant d'une liste 1 : a, b, c, d, e, f, g, h et 1 ligne sur 2 provenant d'une liste 2 : i, j, k, l, m, n, o, p.
Merci à l'avance de ton aide,
Sab
Merci beaucoup !!!
Via cela marche ! Henri, je vais regarder !
Merci à tous !!!!! ;-)
Via cela marche ! Henri, je vais regarder !
Merci à tous !!!!! ;-)
Pier-3d
Messages postés
67
Date d'inscription
lundi 29 janvier 2007
Statut
Membre
Dernière intervention
18 mars 2024
1
27 juil. 2017 à 01:16
27 juil. 2017 à 01:16
Bonjour,
Quelqu'un a testé ce lien ? https://mon-partage.fr/f/13l3uDb8/
Et celui-ci : https://mon-partage.fr/f/DSwt5QeE/
Je me méfie, ai-je raison de le faire ?
Pierre
Quelqu'un a testé ce lien ? https://mon-partage.fr/f/13l3uDb8/
Et celui-ci : https://mon-partage.fr/f/DSwt5QeE/
Je me méfie, ai-je raison de le faire ?
Pierre
Bonjour Pierre,
Le 1er lien est le mien, de henri ; je ne peux donc pas te donner une réponse
objective, mais regarde plus haut la réponse du demandeur sab, du 26 juillet
à 22:04 : « Merci henri, test concluant ! » ; s'il y avait eu le moindre problème,
la réponse aurait été toute autre, sab aurait signalé mon message, et elle
aurait eu tout à fait raison de le faire !
Le nom que j'ai choisi pour mon fichier est : « tbl 10×15 aléa.xlsm » ; le « tbl »
est mon abréviation pour tableau ; il est de taille 10 lignes × 15 colonnes, et
le "but du jeu" est de le remplir avec des caractères aléatoires provenant
d'une ou deux listes ; dans mon fichier, ces listes sont dans le code VBA.
---------------------------------------------------
Le 2ème lien est celui de via55, et je peux te garantir que tu peux lui faire
toute confiance : c'est un de ceux qui aident régulièrement sur le site CCM.
---------------------------------------------------
Bien sûr, « errare humanum est » : personne n'est infaillible ; donc il peut arriver
qu'un code ne soit pas parfait du 1er coup, notamment si l'énoncé de l'exercice
n'était pas suffisamment clair, et donc il faudra apporter une adaptation au code
VBA, ou une amélioration.
Si mon code VBA te convient, et que tu as besoin d'une adaptation,
tu peux me le demander.
Cordialement
Pier-3d
Messages postés
67
Date d'inscription
lundi 29 janvier 2007
Statut
Membre
Dernière intervention
18 mars 2024
1
>
henri
27 juil. 2017 à 17:36
27 juil. 2017 à 17:36
Bonjour Henri,
Et merci d'avoir répondu. Ce qui m'a rendu inquiet en partant c'est que je n'arrive pas à imaginer à quoi servent ces manipulations. En plus, la demande était loin d'être claire : doit-on remplir toutes les cases du tableau ou seulement 8 sur les 150 mais de façon aléatoire ? Et toujours sans savoir à quoi cela peut bien servir. :)
Mais là j'ai compris que CCM me donne de l'info sur les usagers qui proposent des fichiers à télécharger. J'ai vu que MrJenkins est là depuis 2007, Via55 depuis 2013 et que Sab a des messages dans le forum Excel depuis aussi loin que 2004.
Alors voilà qui m'enlève tout inquiétude et je vais télécharger vos macros.
Pierre
Et merci d'avoir répondu. Ce qui m'a rendu inquiet en partant c'est que je n'arrive pas à imaginer à quoi servent ces manipulations. En plus, la demande était loin d'être claire : doit-on remplir toutes les cases du tableau ou seulement 8 sur les 150 mais de façon aléatoire ? Et toujours sans savoir à quoi cela peut bien servir. :)
Mais là j'ai compris que CCM me donne de l'info sur les usagers qui proposent des fichiers à télécharger. J'ai vu que MrJenkins est là depuis 2007, Via55 depuis 2013 et que Sab a des messages dans le forum Excel depuis aussi loin que 2004.
Alors voilà qui m'enlève tout inquiétude et je vais télécharger vos macros.
Pierre
henri
>
Pier-3d
Messages postés
67
Date d'inscription
lundi 29 janvier 2007
Statut
Membre
Dernière intervention
18 mars 2024
27 juil. 2017 à 18:55
27 juil. 2017 à 18:55
Bonjour Pierre,
Des fois, l'exercice à faire est déjà bien indiqué par le titre du sujet,
ici : « Remplir un tableau de manière aléatoire à partir d'une liste » ;
et aléatoire = au hasard (=> instructions Randomize et Random).
Comme te l'as dit sab, elle a ensuite fait une demande pour 2 listes ;
et ces 2 listes sont alternées d'une ligne à l'autre ; relis son message
du 26 juillet à 16:33.
Tu as écris : « ... à quoi servent ces manipulations » et plus loin :
« à quoi cela peut bien servir » ; cela, seule sab le sait vraiment,
mais on peut imaginer des applications ; voici 2 exemples :
1) Suppose que sab est professeur dans une école mixte, donc avec
des garçons et des filles ; dans sa Liste1, elle remplace "a" à "h" par
8 prénoms de garçons ; dans sa Liste2, elle remplace "i" à "p" par
8 prénoms de filles ; le tirage aléatoire lui permettra de "disposer"
ses élèves en rangées alternées de 8 garçons et de 8 filles.
2) Suppose que sab utilise une machine qui doit ranger dans une
boîte 8 sortes de chocolats et 8 sortes de pâtes de fruit ; cela en
rangées alternées ; même principe : remplacer "a" à "h" par les
8 sortes de chocolats et "i" à "p" par les 8 sortes de pâtes de fruit.
À toi d'imaginer d'autres exemples ; quand tu as posté ton message
de 01:16, j'avais pensé que tu avais une idée d'application pratique,
avec peut-être un nombre différent d'éléments et / ou un tableau
de taille différente, c'est pourquoi j'avais mis dans ma réponse :
«
Si mon code VBA te convient, et que tu as besoin d'une adaptation,
tu peux me le demander.
»
Au cas où, cette offre tient toujours. ;)
Cordialement
@sab : pour mon 2ème exemple, si j'ai deviné juste, inutile de m'envoyer
des pâtes de fruit : je les trouve trop sucrées ; par contre, je veux bien
des chocolats, si t'en as en trop. ;P
27 juil. 2017 à 09:20
Via cela marche ! Henri, je vais regarder !
Merci à tous !!!!! ;-)