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
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.Envoyé par es.marco
PS - Tu ne comptes pas sur nos pour te l'écrire ?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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 par
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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 : Sélectionner tout - Visualiser dans une fenêtre à part
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éatoire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager