Bonjour,
Je cherche de l'aide pour Créez une macro qui génère une matrice de N rangées x M colonnes. Un bouton de commande sera utilisé pour générer la matrice et un autre pour l'effacer.
Merci d'avance pour votre aide,
Marco
Version imprimable
Bonjour,
Je cherche de l'aide pour Créez une macro qui génère une matrice de N rangées x M colonnes. Un bouton de commande sera utilisé pour générer la matrice et un autre pour l'effacer.
Merci d'avance pour votre aide,
Marco
C'est bien ! Quel est le problème ? Tu as une erreur ? Laquelle ? Sur quelle ligne de code ? Montre-nous ce que tu as fait.Citation:
Envoyé par es.marco
PS - Tu ne comptes pas sur nos pour te l'écrire ? 8O Sinon, tu te trompes de forum. :(
Voici le code que j'ai ecrit:
Mais à chaque que je clique sur le bouton générer, le nombre aléatoire est le même sur la colonne en question.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Private Sub CommandButton1_Click() Dim N, M As Integer Range("C3").Value = Rnd() * 10 N = Range("C3").Value Range("C4").Value = Rnd() * 10 M = Range("C4").Value 'Range("C3").NumberFormat = "0" 'Range("C4").NumberFormat = "0" Range("A8:A16") = Rnd() * 100 Range("B8:B16") = Rnd() * 100 Range("C8:B16") = Rnd() * 100 Range("D8:C16") = Rnd() * 100 Range("E8:D16") = Rnd() * 100 Range("F8:E16") = Rnd() * 100 Range("A8:F16").NumberFormat = "0" End Sub
Voici un exemple:
26 35 0 74 84 84
26 35 0 74 84 84
26 35 0 74 84 84
26 35 0 74 84 84
26 35 0 74 84 84
26 35 0 74 84 84
26 35 0 74 84 84
26 35 0 74 84 84
26 35 0 74 84 84
Merci d'avance.
Marco
Dans l'aide, tu as un exemple d'utilisation de rnd, tu devrais t'en inspirer ;)
Est ce que sur l'aide de Excel? ou il y'a une rubrique Aide sur le forum?
Merci,
marco
cela dit, sans consulter l'aide sur les aleatoires, cela me parait normal que le nombre soit le meme sur la colone puisque tu lui dis
Range("A8:A16") = Rnd() * 100
à un momment x, il genere un nombre aléatoire et il le place dans ton range, soit dans les 8 cellules.
Que cherches-tu à obtenir ? Des nombres différents dans chaque cellule de la colonne, et différent dans chaque cellule de chaque ligne ou autre chose ?
A+
Peut être je suis très clair sur ma question!
Voici ce que je cherche à faire:
J'ai une cellule où je mets un nombre de Rangées "N" et une autre cellule où je mets le nombre de colonnes "M".
Avec un bouton générer matrice, je veux générer une matrice de N rangées et M colonnes de nombre aléatoire entre 0 et 100.
Avec le code que j'ai ecrit, j'obtient une matrice avec le nombre de rangées correct mais seulement une seule colonne est pleine.
Voici mon code:
Merci d'avance pour ton aide,Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 Dim N, M As Integer N = Range("C3").Value M = Range("C4").Value Range("A8").Select Dim I As Integer For I = 0 To N - 1 For J = 0 To M - 1 ActiveCell.Offset(I, M).Value = Rnd() * 100 Next I
marco
salut. ton erreur est là
a remplacer parCode:ActiveCell.Offset(I, M).Value = Rnd() * 100
ActiveCell.Offset(I, J).Value = Rnd() * 100
d'autre part
je pense que c'est ça que tu cherche a faire
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Sub essai() Dim N, M As Integer N = Int((10 * Rnd) + 1) Range("C3").Value = N M = Int((10 * Rnd) + 1) Range("C4").Value = M Range("A8").Select Dim I As Integer For I = 1 To N For j = 0 To M - 1 ActiveCell.Offset(I, j).Value = Int((100 * Rnd) + 1) Next j Next I End Sub
oui, c'est la même, a part que dans son premier code, il voulait ça :
donc la taille de la matrice était bien aléatoire8O :PCode:
1
2
3
4
5 Dim N, M As Integer Range("C3").Value = Rnd() * 10 N = Range("C3").Value Range("C4").Value = Rnd() * 10 M = Range("C4").Value
Merci Pour votre aide.
L'erreur que Alsimbad a mentionné est la bonne.
Le premier code que j'ai envoyé ne marchait pas et j'ai changé le code avec la methode offset.
Maintenant ça marche.
merci beau coup pour votre aide,
marco