1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    INGENIEUR
    Inscrit en
    février 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : INGENIEUR

    Informations forums :
    Inscription : février 2018
    Messages : 1
    Points : 1
    Points
    1

    Par défaut Choix aléatoire dans liste avec critères entre variables

    Bonjour à tous, je m'appelle Maxime. C'est mon premier poste sur ce forum.
    Malgré mes recherches je n'ai pas réussi à trouver une réponse à mon problème.

    Explication :

    J'ai une liste de 12 valeurs
    Je doit trouver aléatoirement 2 valeurs (X et Y) dans cette liste pour chaque ligne d'un tableau (150 lignes - 3 colonnes X et Y et Z=MOYENNE(X;Y))

    Mais le choix aléatoire doit respecter plusieurs conditions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    (X+Y)/2>30
    ABS(X-Y)<2
    MOYENNE(Z1;Z150)>32
    ECARTYPE.STANDARD(Z1:Z150)>1,5
    Donc à chaque fois, Excel doit choisir les 2 valeurs qui respectent aux mieux les 2 conditions (Doublons ok mais si c'est contrôlable il faudrait éviter que les mêmes valeurs pour X et Y reviennent en permanence sur la même ligne)

    Je pense qu'il faudrait peut être créer un choix aléatoire dans la colonne X et après que Excel choisisse l'autre variable Y suivant les 2 conditions.

    Je vous remercie d'avance pour votre aide

  2. #2
    Expert éminent sénior
    Avatar de patricktoulon
    Profil pro
    Inscrit en
    avril 2009
    Messages
    11 332
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : avril 2009
    Messages : 11 332
    Points : 17 890
    Points
    17 890
    Billets dans le blog
    1

    Par défaut re

    re

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub test()
    For i = 1 To 100
    rec:
    x = Round((Rnd * 100))
    y = Round((Rnd * 100))
    If (x + y) / 2 < 30 Then GoTo rec
    If Abs(x - y) > 2 Then GoTo rec
    Debug.Print "x =" & x & " y  = " & y
    Debug.Print "abs " & Abs(x - y)
    Next
    End Sub
    pour les doublons tu peut utiliser une collection
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Expert éminent
    Homme Profil pro
    aucune
    Inscrit en
    avril 2016
    Messages
    5 687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : avril 2016
    Messages : 5 687
    Points : 9 993
    Points
    9 993

    Par défaut

    Bonjour

    je ne suis pas vraiment disponible et ne le serai vraisemblablement pas pendant un certain temps.
    Mon intervention ici se limitera donc à appeler ton attention sur ceci :
    Autant il est toujours envisageable de procéder à un tirage aléatoire respectant des conditions n'intervenant qu'à anteriori (tel et le cas de tes deux premières conditions ( somme > 60 et écart différence < 2) , autant il est déraisonnable d'envisager la prise en compte de conditions intervenant à posterioiri (la moyenne, par exemple) et qui concernent non un tirage, mais un ensemble de tirages.
    Il parait en effet clair que cette moyenne, non "acceptable" lors du tirage de rang n, variera forcément lors des prochains tirages et pourra le devenir lors du tirage n + x
    Il parait également clair qu'une moyenne non "acceptable" lors du tirage de rang n peut le devenir en supprimant un ou plusieurs tirages antérieurs (et de différentes manières possibles)
    Voilà de quoi te conduire à mieux cerner les choses
    Bonne journée
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro). Ne m'en proposez donc pas.

    Celui qui prétend déterminer une cause fondamentale sur la base d'un effet n'a aucune chance d'avoir mon estime. S'il insiste, il a alors droit à mon total mépris.

  4. #4
    Responsable
    Office & Excel

    Avatar de Pierre Fauconnier
    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    11 098
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 11 098
    Points : 27 902
    Points
    27 902
    Billets dans le blog
    26

    Par défaut

    Salut.

    12 valeurs à prendre par paires permet 144 combinaisons différentes.

    Si tu élimines celles qui ne rentrent pas dans tes conditions, tu en auras forcément moins.

    La question est donc: Comment pouvoir remplir 150 lignes avec un nombre inférieur de possibilités?

    Ma question est donc: A quoi sert ce que tu es en train de tenter de réaliser?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Vous souhaitez rédiger pour DVP? Contactez-moi
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    Vous avez apprécié l'intervention => Merci pour le
    ---------------

  5. #5
    Expert éminent
    Homme Profil pro
    aucune
    Inscrit en
    avril 2016
    Messages
    5 687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : avril 2016
    Messages : 5 687
    Points : 9 993
    Points
    9 993

    Par défaut

    Bonjour Pierre
    66 combinaisons seulement de deux éléments parmi 12.
    Il est aisé d'en dresser la collection épurée de celles qui ne répondent pas aux deux conditions de base (somme > 60 et différence < 2)
    Mais :
    - je "vois" mal ce qu'il entend par "choix aléatoire" sur ses 150 lignes. Veut-il dire qu'il tire aléatoirement 150 fois l'une des n combinaisons "acceptables" (celles demeurées dans la collection) ? (ce qui expliquerait le mot "doublons" qu'il utilise)
    - je "vois" encore plus mal l'application de la condition "moyenne" qui, elle impliquerait d'autres interventions à posteriori, interventions tendant :
    - soit à supprimer certains résultats pour respecter cette moyenne
    - soit, s'il veut avoir toujours 150 résultats, à entreprendre d'autres tirages aléatoires - eux alors adroitement ciblés - jusqu'à satisfaction totale ...

    Cet exercice m'aurait assez intéressé et je regrette beaucoup que des circonstances indépendantes de ma volonté ne me permettent pas d'y consacrer du temps
    Amitiés

    EDIT : à moins, bien évidemment, qu'aient mal été exprimées ces conditions :
    150 lignes - 3 colonnes X et Y et Z=MOYENNE(X;Y))
    (qui pour moi veut dire (X + Y)/2 sur chaque ligne)
    ......
    MOYENNE(Z1;Z150)>32
    (qui pour moi veut dire la moyenne du total des lignes de la colonne Z, donc des moyennes figurant en colonne Z)
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro). Ne m'en proposez donc pas.

    Celui qui prétend déterminer une cause fondamentale sur la base d'un effet n'a aucune chance d'avoir mon estime. S'il insiste, il a alors droit à mon total mépris.

Discussions similaires

  1. Choix aléatoire dans une liste
    Par Julien Bodin dans le forum Général Java
    Réponses: 2
    Dernier message: 28/09/2009, 15h25
  2. Réponses: 3
    Dernier message: 18/10/2008, 00h58
  3. Suppression et Création table avec critère de variable
    Par stephanies_1977 dans le forum VBA Access
    Réponses: 4
    Dernier message: 12/03/2008, 14h53
  4. Choix aléatoire dans un tableau
    Par jacko2 dans le forum Général Java
    Réponses: 3
    Dernier message: 04/03/2008, 11h37
  5. Requête avec critère entre deux valeurs
    Par adrien.gendre dans le forum VBA Access
    Réponses: 3
    Dernier message: 01/08/2007, 13h21

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