OVH Cloud OVH Cloud

suite de chiffre aléatoire avec deux condition

26 réponses
Avatar
Gortex
Bonjour,
je cherche a faire une macro excel qui me génère a partir d'une liste de dix chiffre de un a dix en(A1:A10)
sept combinaison aléatoire sans repetition du meme chiffre dans sept lignes

Premiere condition
il faut exclure pour la combinaison 1 le chiffre qui se trouve en (AA1)
il faut exclure pour la combinaison 2 le chiffre qui se trouve en (AB1)
il faut exclure pour la combinaison 3 le chiffre qui se trouve en (AC1)
il faut exclure pour la combinaison 4 le chiffre qui se trouve en (AD1)
il faut exclure pour la combinaison 5 le chiffre qui se trouve en (AE1)
il faut exclure pour la combinaison 6 le chiffre qui se trouve en (AD1)
il faut exclure pour la combinaison 7 le chiffre qui se trouve en (AF1)

Deuxième condition
il faut exclure pour les sept combinaisons le ou les chiffres pour qui dans la ligne et les sept colonnes
l'un des mots oui,non,peut être
si vous avez une solution merci

10 réponses

1 2 3
Avatar
Michd
Bonjour,
Essaie comme ceci. Dans la procédure, tu dois adapter le nom de l'onglet de
la feuille où l'action se déroule.
'-----------------------------------------------------
Sub Test()
Dim NbChiffres As Long, A As Long
Dim B As Long, Rg As Range, Nb As Long
Dim D As Object, T()
Dim Compteur As Long
Nb = 7
NbChiffres = 7
With Worksheets("Feuil1") 'Onglet feuille à adapter
Set Rg = Range("AA1").Resize(, 7)
ReDim T(1 To Nb)
For A = 1 To NbChiffres
Set D = CreateObject("Scripting.Dictionary")
Do While Nb > Compteur
Randomize
x = Application.RandBetween(1, 10)
If x <> Rg(1, A) Then
If Not D.Exists(CLng(x)) Then
D.Add x, A
Compteur = Compteur + 1
liste = liste & x & "-"
End If
End If
Loop
liste = Left(liste, Len(liste) - 1)
T(A) = liste: B = 1
Compteur = 0
liste = ""
Set D = Nothing
Next
.Range("A1").Resize(7).Value = Application.Transpose(T)
End With
End Sub
'-----------------------------------------------------
MichD
Avatar
Michd
Fichier exemple ici : https://www.cjoint.com/c/HABph2OYPUi
MichD
Avatar
gortex
Le samedi 27 Janvier 2018 à 16:08 par Michd :
Fichier exemple ici : https://www.cjoint.com/c/HABph2OYPUi
MichD
Bonjour
désole voici un fichier qui je l'espère sera plus claire
https://www.cjoint.com/c/HACmvqhpxOT
merci pour votre aide
Avatar
Michd
Explique tes tableaux pour ce qui est de la deuxième condition.
Le "OUI" peut être situé dans n'importe quelle colonne d'une même ligne :
C1:I1 ? Que fais-tu des données en colonne BG?
En J14, tu as écrit : ici les deux conditions sont remplies ! Donc 1 et 3
sont exclus
pourquoi exclure 1 et 3, OK pour le 3 puisqu'il est en AA, mais quel est le
raisonnement pour le 1 ? Pour le OUI en C1? Et si le OUI était en G1, il
faudrait aussi exclure le 1 ? Le 1 représente le numéro de la ligne?
Ton tableau a 10 lignes, mais tu veux seulement 7 combinaisons de numéros.
Que faire des 3 autres lignes?
MichD
Avatar
gortex
Le dimanche 28 Janvier 2018 à 16:51 par Michd :
Explique tes tableaux pour ce qui est de la deuxième condition.
Le "OUI" peut être situé dans n'importe quelle colonne
d'une même ligne :
C1:I1 ? Que fais-tu des données en colonne BG?
En J14, tu as écrit : ici les deux conditions sont remplies ! Donc 1 et
3
sont exclus
pourquoi exclure 1 et 3, OK pour le 3 puisqu'il est en AA, mais quel est le
raisonnement pour le 1 ? Pour le OUI en C1? Et si le OUI était en G1,
il
faudrait aussi exclure le 1 ? Le 1 représente le numéro de la
ligne?
Ton tableau a 10 lignes, mais tu veux seulement 7 combinaisons de
numéros.
Que faire des 3 autres lignes?
MichD
Explique tes tableaux pour ce qui est de la deuxième condition.
Le "OUI" peut être situé dans n'importe quelle colonne d'une même ligne :
C1:I1 ? oui
CI1 pour la combinaison 1
CI1 pour la combinaison 2
CI1 pour la combinaison 3
CI1 pour la combinaison 4
CI1 pour la combinaison 5
CI1 pour la combinaison 6
CI1 pour la combinaison 7
et ainsi de suite selon tirage parmi la liste de 1a10
Que fais-tu des données en colonne BG? ne tien pas compte de BG c'est juste pour alimenter mes listes déroulante dans la plage C1:I10
En J14, tu as écrit : ici les deux conditions sont remplies ! Donc 1 et 3
sont exclus
pourquoi exclure 1 et 3, OK pour le 3 puisqu'il est en AA, mais quel est le
raisonnement pour le 1 ? ont exclu le 1 dans la combinaison 1 car il a un des trois mots oui, non, peut être était en C1
Pour le OUI en C1? Et si le OUI était en G1, il
faudrait aussi exclure le 1 ? si l'un des trois mots oui, non, peut être était en G1 il faudrait l'exclure dans la combinaison 5
Le 1 représente le numéro de la ligne? non il représente le premier chiffre de 1 a 10 de ma liste de récréance
Ton tableau a 10 lignes, mais tu veux seulement 7 combinaisons de numéros.
Que faire des 3 autres lignes? ils seront dans les combinaisons selon les condition 1 et 2
Avatar
Michd
Je ne lis pas dans les pensées des demandeurs!
| Le 1 représente le numéro de la ligne? non il représente le premier
chiffre de 1
a 10 de ma liste de récréance
**** Où est-elle cette liste de recréance?
**** Condition 1 : Exclure les chiffres de la plage AA1 à AG1
**** Condition II : Sur une même ligne dans ton tableau C1:i10 peut-tu avoir
OUI, NON ou PEUT ÊTRE sur LA même ligne?
Que faire si la situation se présente?
**** Peux-tu avoir OUI, NON ou PEUT ÊTRE dans une même cellule? Si oui, que
doit-il se passer?
**** Si je comprends, la condition 1 + la condition 2 pourrait faire en
sorte que sur une ligne du tableau C1:i10 il n'y ait pas une combinaison de
7 nombres différents possibles. Que veux-tu faire si cela se produit?
Ajoute tout supplément d'informations importantes que mes questions ne
couvrent pas nécessairement!
MichD
Avatar
gortex
Le dimanche 28 Janvier 2018 à 16:51 par Michd :
Explique tes tableaux pour ce qui est de la deuxième condition.
Le "OUI" peut être situé dans n'importe quelle colonne
d'une même ligne :
C1:I1 ? Que fais-tu des données en colonne BG?
En J14, tu as écrit : ici les deux conditions sont remplies ! Donc 1 et
3
sont exclus
pourquoi exclure 1 et 3, OK pour le 3 puisqu'il est en AA, mais quel est le
raisonnement pour le 1 ? Pour le OUI en C1? Et si le OUI était en G1,
il
faudrait aussi exclure le 1 ? Le 1 représente le numéro de la
ligne?
Ton tableau a 10 lignes, mais tu veux seulement 7 combinaisons de
numéros.
Que faire des 3 autres lignes?
MichD
la macro ne dois pas mètre la combinaison dans une cellule mais un chiffre une cellule
Avatar
gortex
Le dimanche 28 Janvier 2018 à 19:36 par Michd :
Je ne lis pas dans les pensées des demandeurs!
| Le 1 représente le numéro de la ligne? non il représente
le premier
chiffre de 1
a 10 de ma liste de récréance
**** Où est-elle cette liste de recréance?
**** Condition 1 : Exclure les chiffres de la plage AA1 à AG1
**** Condition II : Sur une même ligne dans ton tableau C1:i10 peut-tu
avoir
OUI, NON ou PEUT ÊTRE sur LA même ligne?
Que faire si la situation se présente?
**** Peux-tu avoir OUI, NON ou PEUT ÊTRE dans une même cellule? Si
oui, que
doit-il se passer?
**** Si je comprends, la condition 1 + la condition 2 pourrait faire en
sorte que sur une ligne du tableau C1:i10 il n'y ait pas une combinaison de
7 nombres différents possibles. Que veux-tu faire si cela se produit?
Ajoute tout supplément d'informations importantes que mes questions ne
couvrent pas nécessairement!
MichD
Le 1 représente le numéro de la ligne? non il représente le premier
chiffre de 1
a 10 de ma liste de reference dans la plage A1:A10
**** Condition 1 : Exclure les chiffres de la plage AA1 à AG1
**** Condition II : Sur une même ligne dans ton tableau C1:i10 peut-tu avoir
OUI, NON ou PEUT ÊTRE sur LA même ligne? oui
Que faire si la situation se présente? exclure le ou les chiffres concerne
**** Peux-tu avoir OUI, NON ou PEUT ÊTRE dans une même cellule? non il y a une liste déroulante pour faire un choix parmi les trois mots
**** Si je comprends, la condition 1 + la condition 2 pourrait faire en
sorte que sur une ligne du tableau C1:i10 il n'y ait pas une combinaison de
7 nombres différents possibles. Que veux-tu faire si cela se produit? un message pour qui j' intervienne manuellement
Avatar
Michd
En supposant que j'ai compris :
Ton fichier : https://www.cjoint.com/c/HADdcdFClei
MichD
Avatar
Michd
Une toute petite correction a été apportée au code :
Correction : https://www.cjoint.com/c/HADdM5DQ8zv
MichD
1 2 3