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
gortex
Le samedi 27 Janvier 2018 à 11:59 par 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
Bonjour
super merci beaucoup
Ces ca ta bien compris
Avatar
gortex
Le lundi 29 Janvier 2018 à 04:40 par Michd :
Une toute petite correction a été apportée au code :
Correction : https://www.cjoint.com/c/HADdM5DQ8zv
MichD
bonsoir
je m'excuse de revenir t’embête
j' ai oublier de preciser dans ma demande que ta macro dois se repeter si je duplique
("C1:i10") dans ("J1:P10") et ("AA1:AG1") dans ("AH1:AN1") et donc les combinaison a la suite de (C14:I32)
Avatar
Michd
Désolé, je n'ai pas compris ta demande... précise!
MichD
"gortex" a écrit dans le message de groupe de discussion :
Le lundi 29 Janvier 2018 à 04:40 par Michd :
Une toute petite correction a été apportée au code :
Correction : https://www.cjoint.com/c/HADdM5DQ8zv
MichD

bonsoir
je m'excuse de revenir t’embête
j' ai oublier de preciser dans ma demande que ta macro dois se repeter si je
duplique
("C1:i10") dans ("J1:P10") et ("AA1:AG1") dans ("AH1:AN1") et donc les
combinaison a la suite de (C14:I32)
Avatar
Michd
Regarde ce fichier : https://www.cjoint.com/c/HAElMAZanhi
MichD
Avatar
gortex
Le mardi 30 Janvier 2018 à 12:39 par Michd :
Regarde ce fichier : https://www.cjoint.com/c/HAElMAZanhi
MichD
Bonjour
merci pour ta grande patience et grande compréhension je suis admiratif
si j'ai bien compris cet le For M = 1 To 2 qui repete ta macro 2 fois
que se passe t'il si j'augmente le 2 ?
Avatar
Michd
| For M = 1 To 2 qui repete ta macro 2 fois que se passe t'il si j'augmente
le 2 ?
C'est une boucle qui tourne 2 fois parce que tu as 2 groupes de plages
différentes. Tu peux faire tourner la boucle du nombre de fois que tu
désires, la seule chose qui s'impose est de déterminer des plages de
cellules différentes. Tu fais cela en modifiant cette section du code :
'------------------------------------
If M = 1 Then
Set Rg = .Range("AA1").Resize(, 7)
Set Rg2 = .Range("C1:i10")
Else
Set Rg = .Range("AH1").Resize(, 7)
Set Rg2 = .Range("J1:P10")
End If
'------------------------------------
Par quelque chose ressemblant à ceci, tu peux ajouter autant de "Case" que
tu désires.
*********************************
Select Case M
Case 1
Set Rg = .Range("AA1").Resize(, 7)
Set Rg2 = .Range("C1:i10")
Case 2
Set Rg = .Range("AH1").Resize(, 7)
Set Rg2 = .Range("J1:P10")
Case3
'Tu définis des nouvelles plages de cellules à traiter
'première cellule de la plage de critère
Set Rg = .Range("xxxx").Resize(, 7)
'Le tableau des données
Set Rg2 = .Range("J1:P10")
Case 4
'Tu définis des nouvelles plages de cellules à traiter
'première cellule de la plage de critère
Set Rg = .Range("xxxx").Resize(, 7)
'Le tableau des données
Set Rg2 = .Range("J1:P10")
End Select
*********************************
Si tu modifies seulement le 2 pour un 4 dans la boucle "For M = 1 To 2", la
deuxième plage de cellules va être répliquée 3 fois. La séquence des
chiffres de la combinaison va être différente puisque les nombres sont tirés
au hasard, mais les 3 listes générées vont tenir compte seulement des
critères de la deuxième plage de cellules et de ses critères.
MichD
Avatar
gortex
Le mardi 30 Janvier 2018 à 16:25 par Michd :
| For M = 1 To 2 qui repete ta macro 2 fois que se passe t'il si j'augmente
le 2 ?
C'est une boucle qui tourne 2 fois parce que tu as 2 groupes de plages
différentes. Tu peux faire tourner la boucle du nombre de fois que tu
désires, la seule chose qui s'impose est de déterminer des plages
de
cellules différentes. Tu fais cela en modifiant cette section du code :
'------------------------------------
If M = 1 Then
Set Rg = .Range("AA1").Resize(, 7)
Set Rg2 = .Range("C1:i10")
Else
Set Rg = .Range("AH1").Resize(, 7)
Set Rg2 = .Range("J1:P10")
End If
'------------------------------------
Par quelque chose ressemblant à ceci, tu peux ajouter autant de
"Case" que
tu désires.
*********************************
Select Case M
Case 1
Set Rg = .Range("AA1").Resize(, 7)
Set Rg2 = .Range("C1:i10")
Case 2
Set Rg = .Range("AH1").Resize(, 7)
Set Rg2 = .Range("J1:P10")
Case3
'Tu définis des nouvelles plages de cellules à traiter
'première cellule de la plage de critère
Set Rg = .Range("xxxx").Resize(, 7)
'Le tableau des données
Set Rg2 = .Range("J1:P10")
Case 4
'Tu définis des nouvelles plages de cellules à traiter
'première cellule de la plage de critère
Set Rg = .Range("xxxx").Resize(, 7)
'Le tableau des données
Set Rg2 = .Range("J1:P10")
End Select
*********************************
Si tu modifies seulement le 2 pour un 4 dans la boucle "For M = 1 To
2", la
deuxième plage de cellules va être répliquée 3 fois.
La séquence des
chiffres de la combinaison va être différente puisque les nombres
sont tirés
au hasard, mais les 3 listes générées vont tenir compte
seulement des
critères de la deuxième plage de cellules et de ses
critères.
MichD
ok super un grand merci
Avatar
Michd
Bonjour Gortex,
Désolé, dernière version : https://www.cjoint.com/c/HAFmjoT4meF
Cette version corrige une coquille.
En travaillant sur un autre problème, j'ai un "flash". Les 2 critères que tu
as définis ne sont pas exclusifs. Par conséquent, j'ai dû modifier
légèrement la procédure pour en tenir compte.
À titre d'exemple entre une valeur en C1 et roule la procédure, tu n'as pas
de combinaison possible en ligne 1. Si tu effaces le contenu de la ligne1,
la combinaison est possible. En C3 = la ligne = 3 et la valeur en AA1 = 3,
tu as la même valeur. La procédure précédente ne tenait pas compte de cela.
MichD
Avatar
gortex
Le mercredi 31 Janvier 2018 à 13:24 par Michd :
Bonjour Gortex,
Désolé, dernière version :
https://www.cjoint.com/c/HAFmjoT4meF
Cette version corrige une coquille.
En travaillant sur un autre problème, j'ai un "flash". Les 2
critères que tu
as définis ne sont pas exclusifs. Par conséquent, j'ai dû
modifier
légèrement la procédure pour en tenir compte.
À titre d'exemple entre une valeur en C1 et roule la procédure,
tu n'as pas
de combinaison possible en ligne 1. Si tu effaces le contenu de la ligne1,
la combinaison est possible. En C3 = la ligne = 3 et la valeur en AA1 = 3,
tu as la même valeur. La procédure précédente ne
tenait pas compte de cela.
MichD
Bonjour
je reviens pour un ajustement si il est possible de faire pour les colonnes comme pour les lignes a partir de C14
de renseigner une colonne sur trois
svp
cordialement
Avatar
Michd
Bonjour,
Je ne comprends pas ta demande.
Tu veux un deuxième tableau ou cela doit être dans le même tableau?
À l'aide de la dernière version du fichier que j'ai publié sur le sujet
https://www.cjoint.com/c/HAFmjoT4meF
Donne plus d'explications quitte à remplir le tableau à titre d'exemple avec
une disposition des données désirée.
MichD
Bonjour
je reviens pour un ajustement si il est possible de faire pour les colonnes
comme pour les lignes a partir de C14
de renseigner une colonne sur trois
svp
cordialement
1 2 3