IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

VBA - Répartition aléatoire de groupes de cellules sous conditions [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2022
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2022
    Messages : 34
    Par défaut VBA - Répartition aléatoire de groupes de cellules sous conditions
    Bonjour,

    J'ai repris un projet d'un ancien étudiant sur Excel... étant novice en langage VBA j'essaye tant bien que mal de comprendre le code pour pouvoir le modifier à ma façon, mais je n'y arrive pas du tout... Dans mon excel, j'ai 7 groupes de valeurs que je parviens à répartir de manière aléatoire grâce au code VBA dans 4 colonnes. Seulement voilà, à présent, j'aimerais que cette répartition respecte certaines conditions. Mes groupes de valeurs vont de 0 à 227 et n'excèdent pas 7 lignes. J'aimerais qu'ils se répartissent dans mes 4 colonnes tout en sachant que la somme de chaque ligne ne dépasse pas 4x90. Par exemple lorsque j'ai mon groupe de valeur commençant par 227, j'utilise trois paliers de 90 donc il me reste une fois 90. Par exemple ma ligne peut accepter 1x90 et 2x0. J'aimerai que ces groupes se répartissent en respectant des paliers de 90. J'espère être le plus clair possible, j'ai ajouté des explications dans mon excel... j'ai vraiment besoin de votre aide!

    Répartition aléatoire forum.xlsm

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 437
    Par défaut
    Bonjour,

    Faut-il vraiment que cela soit "aléatoire"? Je vois qu'il faut inscrire les groupes gr4, gr5 et gr6 chacun à concurrence de 3,75%. Ne pourrait on pas remplir le plan en s'occupant d'abord des plus difficiles à placer et ensuite progressivement s'occuper des moins en moins difficiles? Après cela on pourrait ajouter une touche d'aléatoire en faisant tout glisser d'un certain nombre de positions.

    Autre question: quand un groupe est entamé, faut-il inscrire obligatoirement tout le groupe? Dans l'exemple donné en fin de journée certains groupes ne sont pas entièrement traités => à continuer le jour suivant?

    Cordialement.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2022
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2022
    Messages : 34
    Par défaut
    Bonjour,

    Merci beaucoup pour votre réponse. Oui, si possible il est important de garder l'aspect aléatoire. Les groupes gr4, gr5 et gr6 sont à concurrence de 4% mais ce n'est qu'un exemple, l'idée est d'avoir la possibilité de varier ces proportions (depuis les cellules O16, P16, Q16, R16, S16, T16, U16).
    Cependant, je trouve votre idée intéressante, dans un premier temps nous pourrions placer les groupes plus difficiles (en respectant les pourcentages entrés) puis ajouter une touche d'aléatoire tout en respectant les paliers de 90.
    Il faut obligatoirement tout le groupe tant que nous sommes sur la plage 6:00-20:00, en revanche, un fois arrivé à 20:00 tout s'arrête, pas besoin de reporter le groupe sur le jour suivant.

    Bien cordialement,

    Aurélien.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2022
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2022
    Messages : 34
    Par défaut
    Citation Envoyé par EricDgn Voir le message
    Bonjour,

    Faut-il vraiment que cela soit "aléatoire"? Je vois qu'il faut inscrire les groupes gr4, gr5 et gr6 chacun à concurrence de 3,75%. Ne pourrait on pas remplir le plan en s'occupant d'abord des plus difficiles à placer et ensuite progressivement s'occuper des moins en moins difficiles? Après cela on pourrait ajouter une touche d'aléatoire en faisant tout glisser d'un certain nombre de positions.

    Autre question: quand un groupe est entamé, faut-il inscrire obligatoirement tout le groupe? Dans l'exemple donné en fin de journée certains groupes ne sont pas entièrement traités => à continuer le jour suivant?

    Cordialement.
    Bonjour,
    Je me permets de vous répondre une nouvelle fois puisque j'aimerai modifier mes requêtes (probablement plus facile à réaliser). D'une part, j'aimerai pouvoir choisir le nombre de groupes à répartir dans mon tableau, c'est-à-dire entrer dans une cellule le nombre de groupes souhaité au lieu de remplir le tableau dans son entièreté.
    D'autre part, je souhaite conserver la possibilité de choisir les proportions des différents gr, et les 4x90 à respecter (comme expliqué précédemment).
    J'espère être compréhensible.. Bonne journée

  5. #5
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 437
    Par défaut
    Bonjour,

    Oui avant de chercher une solution, il faut bien poser le problème!

    Pour les groupes, il y a 4 paramètres:
    - leur nombre (1 à 7)
    - leurs "longueurs" (0 à 10)
    - leurs "poids" (1 à 4), un groupe étant toujours constitué d'éléments de même poids
    - les pourcentages demandés
    A mon avis il reste préférable de remplir le tableau dans son entièreté. Il facilitera le contrôle visuel.

    Pour ce qui est de la production qui va de 06:00 à 20:00 par période de 5 minutes, il faut être attentif que lorsque l'on indique 06:00, 06:05, .... c'est implicitement: 06:00-06:05, 06:05-06:10 et que la dernière période est donc 19:55-20:00 (et qu'il n'y a donc pas à inscrire 20:00 car cela signifie implicitement 20:00-20:05).

    Pour ce qui est des pourcentages, il y a aussi un point à éclaircir. Dans l'exemple donné 40% est fixé au groupe gr7, lequel est vide. A quoi correspondent exactement ces %, pourcentages qu'il n'est pas possible de réaliser tout à fait exactement vu que 1 période sur 672 = 0,1488% de la journée.

    Enfin dans la macro les groupes sont positionnés aléatoirement, mais ensuite on ne conserve que le meilleur résultat sur 50 essais. Pourquoi ne pas rechercher directement, par une méthode logique, le meilleur résultat possible?

    Cordialement.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2022
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2022
    Messages : 34
    Par défaut
    Merci pou votre réponse.
    Concernant les paramètres, qu'entendez vous par le poids ? S'agit-il des paliers ?
    Ok pour la plage horaire, c'est une erreur.
    L'intérêt des pourcentages est de pouvoir faire apparaître en plus grande proportion certains groupes sur la journée. Le groupe 7 (qui est vide) a été crée pour représenter les temps de pauses entre l'enchainement des groupes 1 à 6. Si tu as une meilleure solution, il est possible de supprimer le groupe 7 mais j'ai besoin qu'il y ai du vide entre mes groupes 1 à 6.
    Si je comprends bien le code réalisé, l'idée de réaliser 50 essais était de pouvoir trouver la meilleure répartition possible puisqu'il est impossible de respecter exactement les pourcentages.
    J'aimerai ajouter à cela une la possibilité d'entrer dans une cellule le nombre de groupes à répartir.

    Si je récapitule :
    1-j'entre les pourcentages des groupes
    2-j'entre le nombre de groupes que je souhaite voir apparaitre dans mon tableau de la journée (seuls les groupes de 1 à 6 m'intéressent)
    3-Répartition des groupes sur la plage de donnée de manière aléatoire en respectant les paliers de 90 et bien évidemment les proportions et le nombre de groupes.

    Bien cordialement,

    Aurélien.

  7. #7
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 437
    Par défaut
    Dans l'exemple joint au premier message, en colonne B, entre 7:00 et 8:00 il y a 2 fois le groupe gr3 sans interruption entre les 2. Admis ou non admis?
    On pourrait dire qu'un groupe c'est ce groupe + 1 cellule vide. Ce serait même mieux d'étendre le groupe en y plaçant un 0, juste pour bien marquer que c'est la pause post-groupe.
    Cdt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] copiage, de cellules sous conditions, dans un planning, de manière aléatoire
    Par profdesvt.ril dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 27/01/2016, 21h03
  2. [XL-2010] Répartition données dans plusieurs cellules sous conditions
    Par shipuden64 dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 03/04/2015, 11h04
  3. [XL-2003] faire Clignoter une cellule sous condition
    Par LaPanic dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 21/06/2009, 18h49
  4. macro vba identifier cellule sous condition
    Par yanacrux dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/03/2009, 14h00
  5. colorer des cellules sous conditions
    Par coenonympha dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/07/2008, 13h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo