Liste aléatoire sans doublons
Modérateur : Vilains modOOs
Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
-
- NOOuvel adepte
- Messages : 20
- Inscription : 07 sept. 2011 11:46
- Localisation : Paris
Liste aléatoire sans doublons
Bonjour à tous !
Problème du jour :
J'ai une colonne contenant une liste d'objets (texte) générée aléatoirement grâce à une autre feuille contenant les dits textes.
Je cherche à faire en sorte que les doublons soient impossibles. C'est-à-dire, que, quand il génère l'exact même texte, il relance le calcul jusqu'à tomber sur un texte qui ne soit pas encore affiché.
J'ai cherché sur le forum et suis tombée sur cet article : http://user.services.openoffice.org/fr/ ... ns+doublon qui n'aboutit à aucune solution. Et comme il est très ancien, peut-être y-a-t-il une solution aujourd'hui ?
Sinon en farfouillant sur le net j'ai également trouvé l'option "sans doublons", mais cela supprime les doublons, et ne génère, en aucun cas, un nouveau calcul...
Auriez-vous une idée ?
Merci d'avance à tous...!
Problème du jour :
J'ai une colonne contenant une liste d'objets (texte) générée aléatoirement grâce à une autre feuille contenant les dits textes.
Je cherche à faire en sorte que les doublons soient impossibles. C'est-à-dire, que, quand il génère l'exact même texte, il relance le calcul jusqu'à tomber sur un texte qui ne soit pas encore affiché.
J'ai cherché sur le forum et suis tombée sur cet article : http://user.services.openoffice.org/fr/ ... ns+doublon qui n'aboutit à aucune solution. Et comme il est très ancien, peut-être y-a-t-il une solution aujourd'hui ?
Sinon en farfouillant sur le net j'ai également trouvé l'option "sans doublons", mais cela supprime les doublons, et ne génère, en aucun cas, un nouveau calcul...
Auriez-vous une idée ?
Merci d'avance à tous...!
OpenOffice.org 3.3.0 / Windows XP - Service Pack 3
-
- GourOOu
- Messages : 5753
- Inscription : 02 janv. 2009 23:56
Re: Liste aléatoire sans doublons
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
-
- NOOuvel adepte
- Messages : 20
- Inscription : 07 sept. 2011 11:46
- Localisation : Paris
Re: Liste aléatoire sans doublons
Bonjour Jean-Louis !
Merci pour le lien, je n'avais effectivement pas trouvé ce message.
Cependant j'avoue que je ne comprends pas bien, je suis désolée.
Le "dépistage" des doublons se fait via =NB.SI(Dates;$C2). Cela génère des chiffres entre 1 et 10. A quoi cela correspond-t-il ? Et surtout comment cela est-il récupéré pour générer un second "check" aléatoire ?
Désolée d'être aussi bouchée...
Merci pour ta réponse en tout cas.
Merci pour le lien, je n'avais effectivement pas trouvé ce message.
Cependant j'avoue que je ne comprends pas bien, je suis désolée.
Le "dépistage" des doublons se fait via =NB.SI(Dates;$C2). Cela génère des chiffres entre 1 et 10. A quoi cela correspond-t-il ? Et surtout comment cela est-il récupéré pour générer un second "check" aléatoire ?
Désolée d'être aussi bouchée...
Merci pour ta réponse en tout cas.
OpenOffice.org 3.3.0 / Windows XP - Service Pack 3
-
- ManitOOu
- Messages : 3028
- Inscription : 30 avr. 2011 23:08
- Localisation : Casablanca (Maroc)
Re: Liste aléatoire sans doublons
Bonjour,
Comme d'habitude, un fichier d'exemple, sans données "sensibles" mais reproduisant les situations où "ça coince", faciliterait le travail de tout le monde.
Comme d'habitude, un fichier d'exemple, sans données "sensibles" mais reproduisant les situations où "ça coince", faciliterait le travail de tout le monde.
À bientôt
LibO 4.1.5.3 et AOO 4.0.1 sous Windows 7, MRI et SDK pour les macros.
Et la sauvegarde incrémentée, c'est sympa !
LibO 4.1.5.3 et AOO 4.0.1 sous Windows 7, MRI et SDK pour les macros.
Et la sauvegarde incrémentée, c'est sympa !
-
- NOOuvel adepte
- Messages : 20
- Inscription : 07 sept. 2011 11:46
- Localisation : Paris
Re: Liste aléatoire sans doublons
Bonjour Alhazred,
Bien sûr, avec plaisir.
Voici ledit document. Il contient deux feuilles. La feuille "clothes" contient la liste de tout ce que je vais chercher dans mes fonctions. La feuille "content" est celle générant cette fameuse liste aléatoire dont les doublons doivent être exclus.
Merci !
Bien sûr, avec plaisir.
Voici ledit document. Il contient deux feuilles. La feuille "clothes" contient la liste de tout ce que je vais chercher dans mes fonctions. La feuille "content" est celle générant cette fameuse liste aléatoire dont les doublons doivent être exclus.
Merci !
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice.org 3.3.0 / Windows XP - Service Pack 3
-
- GourOOu
- Messages : 5753
- Inscription : 02 janv. 2009 23:56
Re: Liste aléatoire sans doublons
Bonjour,
Ci-joint le fichier d'échantillonnage aléatoire du message auquel je te renvoyais, avec toutes les formules commentées. Les zones en violet clair sont celles où s'exerce le hasard. J'ai aussi affiché toutes les colonnes et toutes les feuilles.
Je n'ai pas encore regardé ton fichier...
A+
Jean-Louis
Ci-joint le fichier d'échantillonnage aléatoire du message auquel je te renvoyais, avec toutes les formules commentées. Les zones en violet clair sont celles où s'exerce le hasard. J'ai aussi affiché toutes les colonnes et toutes les feuilles.
Je n'ai pas encore regardé ton fichier...
A+
Jean-Louis
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
-
- ManitOOu
- Messages : 3028
- Inscription : 30 avr. 2011 23:08
- Localisation : Casablanca (Maroc)
Re: Liste aléatoire sans doublons
Merci, Koudelkate, pour ton fichier, je vais pouvoir travailler sur du concret.
En particulier, je me demandais si les données pouvaient en elles-même contenir des doublons (par exemple même texte avec des casses différentes), ce qui ne paraît pas être le cas.
Le fichier fourni par Jean-Louis Cadeillan (mes respects) m'a complètement dissuadé de chercher une solution côté tableur donc, je m'oriente vers une macro...
À plus..
En particulier, je me demandais si les données pouvaient en elles-même contenir des doublons (par exemple même texte avec des casses différentes), ce qui ne paraît pas être le cas.
Le fichier fourni par Jean-Louis Cadeillan (mes respects) m'a complètement dissuadé de chercher une solution côté tableur donc, je m'oriente vers une macro...
À plus..
À bientôt
LibO 4.1.5.3 et AOO 4.0.1 sous Windows 7, MRI et SDK pour les macros.
Et la sauvegarde incrémentée, c'est sympa !
LibO 4.1.5.3 et AOO 4.0.1 sous Windows 7, MRI et SDK pour les macros.
Et la sauvegarde incrémentée, c'est sympa !
-
- NOOuvel adepte
- Messages : 20
- Inscription : 07 sept. 2011 11:46
- Localisation : Paris
Re: Liste aléatoire sans doublons
Re-bonsoir,
Jean-Louis, je ne sais pas si cela correspond à ce que je cherche : apparemment la vérification ne s'effectue que sur la ligne précédent, hors comme j'utilise un random, je pense que j'aurais besoin d'une vérification qui check l'ensemble du document. Du coup j'ai un peu du mal à voir comment je peux appliquer ton exemple à mon problème...
Alhazred, je me doutais bien que la solution se trouverait dans les macros... Malheureusement je crois que c'est un peu compliqué pour moi Enfin je peux toujours m'y mettre !
Merci pour votre aide en tout cas, je continue à chercher de mon côté...
Jean-Louis, je ne sais pas si cela correspond à ce que je cherche : apparemment la vérification ne s'effectue que sur la ligne précédent, hors comme j'utilise un random, je pense que j'aurais besoin d'une vérification qui check l'ensemble du document. Du coup j'ai un peu du mal à voir comment je peux appliquer ton exemple à mon problème...
Alhazred, je me doutais bien que la solution se trouverait dans les macros... Malheureusement je crois que c'est un peu compliqué pour moi Enfin je peux toujours m'y mettre !
Non, c'est impossible. Dans mon document, chaque cellule de la liste comprend un nom unique, même si leur différence est infime (ex: "SHOES_BOOTS # 1" et "SHOES_BOOTS # 1.2").En particulier, je me demandais si les données pouvaient en elles-même contenir des doublons (par exemple même texte avec des casses différentes), ce qui ne paraît pas être le cas.
Merci pour votre aide en tout cas, je continue à chercher de mon côté...
OpenOffice.org 3.3.0 / Windows XP - Service Pack 3
-
- GourOOu
- Messages : 5753
- Inscription : 02 janv. 2009 23:56
Re: Liste aléatoire sans doublons
Le fichier précédent était adapté quand il y avait des doublons dans la liste des articles et donc qu'il fallait choisir au hasard des articles et parmi les articles en double un article au hasard... ce qui n'est pas le cas ici... donc c'est plus simple pour ton problème
Ci-joint une solution commentée sur la feuille Alea, étape par étape (je n'ai pas condensé les formules et évité toute matrice pour faciliter la compréhension). Les 25 articles échantillonnés sont déjà reportés sur la feuille Content. A+
Jean-Louis
Ci-joint une solution commentée sur la feuille Alea, étape par étape (je n'ai pas condensé les formules et évité toute matrice pour faciliter la compréhension). Les 25 articles échantillonnés sont déjà reportés sur la feuille Content. A+
Jean-Louis
Ajout : J'ai fait une petite modif en colonne E, car j'avais une erreur VALEUR! avec LibO 3.4.2... En prime, je joins une version encore plus simple (si, si, c'est possible) utilisant NB.SI() Pour les deux versions, il suffit de faire Maj+ Ctrl+F9 pour changer l'échantillonnage au hasard |
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Jean-Louis Cadeillan le 16 sept. 2011 21:09, modifié 1 fois.
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
-
- ManitOOu
- Messages : 3028
- Inscription : 30 avr. 2011 23:08
- Localisation : Casablanca (Maroc)
Re: Liste aléatoire sans doublons
Bonsoir,
Voilà, j'ai réglé le problème par macros (+ un bouton pour déclencher le tirage) Tu pourras ajouter des boutons pour les autres niveaux, et bien sûr associer à chacun une macro sur le modèle de Sub Draw.
Quant à Sub DoDraw et surtout Function Combinaison, n'y touche pas; je vais d'ailleurs poster cette dernière, qui peut sans doute intéresser pas mal de monde...
Voilà, j'ai réglé le problème par macros (+ un bouton pour déclencher le tirage) Tu pourras ajouter des boutons pour les autres niveaux, et bien sûr associer à chacun une macro sur le modèle de Sub Draw.
Quant à Sub DoDraw et surtout Function Combinaison, n'y touche pas; je vais d'ailleurs poster cette dernière, qui peut sans doute intéresser pas mal de monde...
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
À bientôt
LibO 4.1.5.3 et AOO 4.0.1 sous Windows 7, MRI et SDK pour les macros.
Et la sauvegarde incrémentée, c'est sympa !
LibO 4.1.5.3 et AOO 4.0.1 sous Windows 7, MRI et SDK pour les macros.
Et la sauvegarde incrémentée, c'est sympa !
-
- NOOuvel adepte
- Messages : 20
- Inscription : 07 sept. 2011 11:46
- Localisation : Paris
Re: Liste aléatoire sans doublons
Bonjour !
Waouh, merci à vous deux, je n'en attendais pas tant... Vous avez tout fait à ma place...
Par contre j'ai plusieurs questions quant à vos techniques différentes
Jean-Louis,
cette technique a, effectivement, l'air assez simple ! Ce qui est parfait pour mon niveau... Mais comment faire pour ajouter du contenu...?
Si j'ajoute des lignes dans la feuille "Clothes", me suffit-il d'agrandir la liste de "Alea" en ajoutant mes nouveaux articles ? Par exemple : =SI($clothes.A188="";"";LIGNE(clothes.A188)) je continue en ajoutant =SI($clothes.A189="";"";LIGNE(clothes.A189)) etc ? Ou la manip est plus complexe que cela ?
Et comment faire si je ne veux traiter qu'une partie de ma liste à la fois ? Par exemple, ne faire une génération aléatoire qu'avec les lignes 5 à 89 de la feuille "clothes" sur les 10 premières lignes de la feuille "content", puis pour les 10 lignes suivantes, ne prendre que les lignes 90 à 180 de la feuille "clothes", etc. La technique que j'utilisais avant pour cela semble poser problème maintenant puisque j'ai de temps en temps une erreur 502.
Alhazred,
comment se servir de cette macro ? Je l'ai bien trouvée mais rien ne se passe quand je clique sur "Draw" ou quand je vais le chercher dans Outils-Macros.
Je pense que je m'y prends mal, ne m'étant jamais servi de macro de ma vie...
En tout cas merci à vous pour votre travail ! Votre m'aide m'a vraiment été très très précieuse...!
Waouh, merci à vous deux, je n'en attendais pas tant... Vous avez tout fait à ma place...
Par contre j'ai plusieurs questions quant à vos techniques différentes
Jean-Louis,
cette technique a, effectivement, l'air assez simple ! Ce qui est parfait pour mon niveau... Mais comment faire pour ajouter du contenu...?
Si j'ajoute des lignes dans la feuille "Clothes", me suffit-il d'agrandir la liste de "Alea" en ajoutant mes nouveaux articles ? Par exemple : =SI($clothes.A188="";"";LIGNE(clothes.A188)) je continue en ajoutant =SI($clothes.A189="";"";LIGNE(clothes.A189)) etc ? Ou la manip est plus complexe que cela ?
Et comment faire si je ne veux traiter qu'une partie de ma liste à la fois ? Par exemple, ne faire une génération aléatoire qu'avec les lignes 5 à 89 de la feuille "clothes" sur les 10 premières lignes de la feuille "content", puis pour les 10 lignes suivantes, ne prendre que les lignes 90 à 180 de la feuille "clothes", etc. La technique que j'utilisais avant pour cela semble poser problème maintenant puisque j'ai de temps en temps une erreur 502.
Alhazred,
comment se servir de cette macro ? Je l'ai bien trouvée mais rien ne se passe quand je clique sur "Draw" ou quand je vais le chercher dans Outils-Macros.
Je pense que je m'y prends mal, ne m'étant jamais servi de macro de ma vie...
En tout cas merci à vous pour votre travail ! Votre m'aide m'a vraiment été très très précieuse...!
OpenOffice.org 3.3.0 / Windows XP - Service Pack 3
-
- RespOOnsable modération
- Messages : 3952
- Inscription : 06 oct. 2008 08:03
Re: Liste aléatoire sans doublons
Bonjour,
Je rappelle que cette section n'est pas consacrée aux macros (voir le bandeau rouge en haut de la page). Si vous avez à poursuivre dans cette voie, merci de poster au bon endroit. Ceci dans un but de recherche efficace de l'information dans ce forum.
Si vous postez une solution, faites le en section "Macros et API" et ajoutez dans ce fil un lien vers celle-ci.
Je rappelle que cette section n'est pas consacrée aux macros (voir le bandeau rouge en haut de la page). Si vous avez à poursuivre dans cette voie, merci de poster au bon endroit. Ceci dans un but de recherche efficace de l'information dans ce forum.
Si vous postez une solution, faites le en section "Macros et API" et ajoutez dans ce fil un lien vers celle-ci.
Pour tout savoir sur le fonctionnement de ce forum À lire avant tout !
-
- ManitOOu
- Messages : 3028
- Inscription : 30 avr. 2011 23:08
- Localisation : Casablanca (Maroc)
Re: Liste aléatoire sans doublons
Bonjour,
Tu peux aussi, si tu désires que le bouton Draw s'occupe à la fois de tous les niveaux, ajouter les lignes correspondantes (DoDraw etc.) dans la macro Draw.
Je ne vois que deux explications possibles:Koudelkate a écrit :rien ne se passe quand je clique sur "Draw" ou quand je vais le chercher dans Outils-Macros.
- (improbable) les macros sont bloquées: si tu as un avertissement à ce sujet à l'ouverture du fichier, ferme-le, puis Menu Options et choisis OpenOffice/Sécurité, clique sur "Sécurité des macros" et choisis le niveau moyen, puis ferme les fenêtres par OK et rouvre le fichier;
- tu es en mode Ébauche (quand tu cliques sur le bouton, une ancre et des poignées apparaissent); pour le désactiver, affiche la barre d'outils Ébauche de formulaire ou Contrôles de formulaire et clique sur le bouton en forme de main; tout devrait fonctionner.
Pour les autres niveaux, copie-colle la macro Draw, donne-lui un nouveau nom par exemple Draw1 et modifie le nom de la zone visée ainsi que la zone de données; par exemple, pour le niveau 2 de ton fichier, ce sera DoDraw("Content","C15:G15","A90:A188"), puis crée un nouveau bouton et associe l'événement action à la macro Draw1.Koudelkate a écrit :comment se servir de cette macro ?
Tu peux aussi, si tu désires que le bouton Draw s'occupe à la fois de tous les niveaux, ajouter les lignes correspondantes (DoDraw etc.) dans la macro Draw.
Je pense que le sujet actuel est trop particulier pour faire l'objet d'une solution en Macros; par contre, la fonction centrale (Combinaison), plus généralement utilisable, sera publiée, promis.Oukcha a écrit :Si vous avez à poursuivre dans cette voie, merci de poster au bon endroit.
Ajout : Voilà qui est fait ici |
Dernière modification par alhazred le 15 sept. 2011 00:06, modifié 1 fois.
À bientôt
LibO 4.1.5.3 et AOO 4.0.1 sous Windows 7, MRI et SDK pour les macros.
Et la sauvegarde incrémentée, c'est sympa !
LibO 4.1.5.3 et AOO 4.0.1 sous Windows 7, MRI et SDK pour les macros.
Et la sauvegarde incrémentée, c'est sympa !
-
- GourOOu
- Messages : 5753
- Inscription : 02 janv. 2009 23:56
Re: Liste aléatoire sans doublons
Bonsoir,
Maintenant, il t'appartient de voir comment tu vas chercher les n° de lignes qui te conviennent dans les items de Content. Tu peux par exemple faire plusieurs feuilles de type Content, une par type d'échantillonnage.
A+
Jean-Louis
Avec cette nouvelle version, oui (voir les notes de cellules et autres commentaires).Koudelkate a écrit :Si j'ajoute des lignes dans la feuille "Clothes", me suffit-il d'agrandir la liste de "Alea" en ajoutant mes nouveaux articles ?
Voir la feuille Ch(comme Choix). L'idée c'est de mettre, sur la feuille clothes, un 1 sur la ligne de l'article qui doit participer au tirage aléatoire, ce qui te permet de constituer n'importe quelle sous-collection.Koudelkate a écrit :Et comment faire si je ne veux traiter qu'une partie de ma liste à la fois ?
Maintenant, il t'appartient de voir comment tu vas chercher les n° de lignes qui te conviennent dans les items de Content. Tu peux par exemple faire plusieurs feuilles de type Content, une par type d'échantillonnage.
A+
Jean-Louis
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1