Bonjour,
Je suis toujours au niveau VBAExcel pour les nuls.
Et pardon d'être aussi long.
Je suis sous Excel 2000 (9.0.2812) et Windows XP Home avec SP2.
J'ai fait une moulinette destinée à trier des données texte dans un ordre aléatoire. La fonction RAND est dans la cellule A1 de la feuille 1, les textes à trier dans la colonne B1 à Bn. Le tri aléatoire vise à placer, au hasard, l'un des textes en ligne 1 de la colonne.
Le reste de la manip consiste à copier un à un ces textes sélectionnés au hasard sur la 2ème feuille du même classeur.
Je constate que la fonction RAND et ses résultats vont polluer la 2ème feuille et perturbent la copie prévue sur cette feuille.
Je ne comprend pas comment, en ayant sélectionné la 1ère feuille par son nom, la procédure se déroule en même temps dans la feuille 2, voire dans les suivantes. Le bout de code en question
Je sais qu'il existe un moyen plus simple de recopier ma formule dans une partie de la 1ère colonne mais je ne suis pas parvenu à la programmer. Laissons tomber pour le moment. Ce qui m'ahurit, c'est la contamination de la feuille 2 par ce qui se passe sur la feuille 1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 ' installation de la formule aléatoire dans la colonne A de la feuille de départ Worksheets("feuille_syntagmes").Activate Worksheets("feuille_syntagmes").Range("A1").Select ActiveCell.FormulaR1C1 = "=INT(RAND()*20)" Range("A1").Copy For q = 1 To b - 1 'le compteur tournera jusqu'à la dernière ligne occupée.... ActiveCell.Offset(1, 0).Activate ' et collera la formule ActiveSheet.Paste ' tout le long de la colonne Next Range(Cells(1, 1), Cells(b, 1)).Select Calculate ' provoque au besoin la recalculation des 'nombre aléatoires
merci pour tout élément de réponse.
Cordialement
Pierre
(P.S: Si vous pensez que j'essaie d'imiter l'Oulipo, vous avez raison)
Partager