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
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
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.
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 )