Bonjour,
N'étant pas un expert dans le domaine VB et ayant besoin urgemment d'aide, je me suis dit qu'il ne me restait plus qu'à espérer l'aide d'Internaute!
J'ai un document excel qui fait appel à une macro. Cette macro a différents buts, mais elle doit notamment me permettre de:
1) Créer un tableau de x entiers (x étant par exemple 60) dans l'ordre croissant
2) Reprendre toutes valeurs de ce tableau et me créer un 2ème tableau, mais avec un ordre différent et complètement aléatoire.
3) S'assurer qu'aucune position dans le 1er tableau ne contienne le même entier que dans la même position dans le 2ème tableau.
Voici un extrait du code où je rencontre des problèmes:
A la fin je récupère le contenu des 2 tableaux pour les écrire dans mon document Excel et pour valider que ça fonctionne comme attendu. Le contenu de mon premier tableau est parfait (forcément, ça n'est pas bien compliqué), mais le contenu de mon 2ème tableau (tri aléatoire du premier) n'a pas du tout l'effet attendu. Vous verrez ci-dessous que le 2ème tableau me retourner passablement de valeurs nulles ... et je n'ai aucune idée pourquoi !
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 For ID = 1 To Nbre_Tapis Tableau1(ID) = ID Tableau2(ID) = ID Tableau3(ID) = ID Tableau4(ID) = ID Next v0 = UBound(Tableau2) - LBound(Tableau2) For ID = LBound(Tableau2) To UBound(Tableau2) v1 = Int(Rnd() * v0 + LBound(Tableau2)) v2 = Int(Rnd() * v0 + LBound(Tableau2)) v3 = Tableau2(v2) Tableau2(v2) = Tableau2(v1) Tableau2(v1) = v3 Next For ID = 1 To Nbre_Tapis Set Onglet = Worksheets("Test") Onglet.Cells(ID, 1) = Tableau1(ID) Onglet.Cells(ID, 2) = Tableau2(ID) Next
1
2
3
4
5 21
6
7
8
9
10 28
11 11
12
13
14
15
16
17
18
19 30
20 20
21
22 22
23
24 24
25
26 26
27
28
29
30 23
Sauriez-vous ce qui est faux dans mon code ? Il faudrait à tout prix que je puisse avoir ces 30 valeurs, chacune une seule fois, mais dans un ordre complétement différent.
Quand j'aurai résolu ce problème, je m'attaquerai alors à garantir qu'aucune position dans le 1er tableau ne contienne le même entier que dans la même position dans le 2ème tableau.
Je remercie d'orest déjà tous ceux qui pourrait m'aider et me dire ce que j'ai de faux dans mon bout de code ... le temps presse, du coup je bûche en parallèle pour trouver par moi-même le problème !
Merci d'avance
Fabien
J'oubliais ...
J'ai repris un exemple trouvé sur le net, et j'avoue ne pas comprendre certaines étapes.
Fabien
Partager