Problème de sélection de range

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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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...
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
293
D
  • Question Question
Réponses
5
Affichages
244
Didierpasdoué
D
Retour