Problème de sélection de range

  • Initiateur de la discussion Benoit
  • Date de début
B

Benoit

Guest
Bonjour à tous,

Mise en contexte: le fichier ci-joint contient 2 feuilles soit data et Liste Noms.

J'utilise une macro qui créé une liste de noms sans doublons à partir de la colonne A de la feuille data. Cette liste est créée dans la feuille liste noms.

Dans cette feuille quatre colonnes :
A: les noms
B: le #de la ligne où commence le nom
C: le #de la ligne où se termine le nom
D: le nombre de lignes pour chaque nom

Ensuite, j'utilise une macro qui choisi au hasard
un nombre de lignes dans la feuille data à partir des données de la ligne 1 de la feuille liste noms. La macro utilise la valeur de B1 et de C1 pour déterminer le range dans lequel choisir au hasard les lignes.

C'est justement là mon problème, ma macro ne fonctionne qu'avec la ligne 1 mais j'aimerais qu'elle le fasse pour chacune des lignes de la feuille liste noms. Donc après avoir utiliser les valeurs de la ligne 1, qu'elle recommence le choix au hasard de cellules avec les données de A2, B2 et C2...

Le caratère d'une cellule sélectionnée est mis en bleu.

Le tout sera sans doute plus facile à comprendre en consultant le fichier. Vous pouvez utiliser le bouton pour lancer la macro.

J'espère que mes explications sont compréhensibles... et merci beaucoup de m'aider encore une fois...
 
B

Benoit

Guest
Voici le fichier... [file name=audits3.zip size=32398]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/audits3.zip[/file]
 

Pièces jointes

  • audits3.zip
    31.6 KB · Affichages: 26

pat1545.

XLDnaute Accro
Salut,

ceci devrait boucler mieux :)

Sub AAA()
'=====================================================================================================================
'Sert à sélectionner les cellules de la colonne A de la feuille data au hasard pour chacun des noms
'listés dans la feuille Liste noms


'i représente le nombre de fois que la boucle s'exécutera
Dim i As Byte
Dim Maxi As Integer, Z As Integer
Dim Valeur1 As Integer, Valeur2 As Integer
Dim Ligne As Integer
Valeur1 = Sheets('Liste Noms').Range('B1').Value
Valeur2 = Sheets('Liste Noms').Range('C1').Value
Sheets('data').Activate
' maxi = le nombre de lignes en onglet 'liste nom'
Maxi = Sheets('liste noms').Range('A65000').End(xlUp).Row
For Z = 1 To Maxi
For i = 1 To 3
Randomize
Ligne = Int((Valeur2 - Valeur1 + 1) * Rnd + Valeur1)
Cells(Ligne, 1).Select

'Met le texte de la cellule choisie en bleu
With Selection.Font
.ColorIndex = 5
End With
Next i
Next Z
End Sub

Bye
 

Discussions similaires

Réponses
5
Affichages
256

Statistiques des forums

Discussions
312 563
Messages
2 089 692
Membres
104 257
dernier inscrit
Stane78