XL 2016 Tirage au sort liste élèves

  • Initiateur de la discussion Initiateur de la discussion kachou
  • 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 !

kachou

XLDnaute Nouveau
Bonjour,
Je voudrais utiliser la macro tirage au sort à partir d'une liste de noms, le fichier joint fonctionne bien sauf que sur 30 noms, seulement 29 apparaissent. Merci pour votre aide.
 

Pièces jointes

Solution
je ne peux que deviner ce que tu as entre les mains.
Et si ce que je devine est exact, celui qui a écrit ce code est un rhinocéros infirme.
Que ferait ceci :
VB:
Sub Tombola()
    Dim Aleatorio As Integer, plage As Range, x As Integer
     Set plage = Sheets("Hoja2").Columns(1)
     With Sheets("Hoja2").Columns(1)
       x = WorksheetFunction.CountA(plage)
       If x > 0 Then
          Aleatorio = WorksheetFunction.RandBetween(1, x)
            Range("C7") = .Range("A" & Aleatorio).Value
            .Range("A" & Aleatorio).EntireRow.Delete
        Else
          MsgBox "Se han acabado los números"
          .Cells(1, 1).Value = 1
          .DataSeries xlColumns, Stop:=30
    End If
     End With
End Sub

Sans préjudice de la...
Bonjour
Je n'ouvre jamais un classeur tiers et n'ai donc pas ouvert le tien.
Mon petit doigt me dit toutefois qu'il est vraisemblable que tu ecxtrait un nombre aléatoire entre deux limites et que tu n'extrais rien si la limite inférieure est atteinte.
C'est là une maladresse. Tu ne dois rien extraire que si plus rien dans une liste et pas au moment où il n'y reste qu'un article.
 
Merci pour ton aide JMF,
N'étant pas un expert, je te montre la macro récupérée et en espagnol !!

Sub Tombola()

Dim Aleatorio As Integer

Dim Resultado As Integer

Dim x As Integer

x = Sheets("Hoja2").Range("A" & Cells.Rows.Count).End(xlUp).Row

Aleatorio = WorksheetFunction.RandBetween(1, x)

If x <> 1 Then

With Sheets("Hoja2").Cells(Aleatorio, 1)

Range("C7") = .Value

'Borra esta línea si no quieres que se registren los números que van saliendo en la columna A.
Range("A100").End(xlUp).Offset(1) = .Value

.Delete Shift:=xlUp

End With

Else

MsgBox "Se han acabado los números"

With Sheets("Hoja2").Range("A1")

.Value = 1

.DataSeries xlColumns, Stop:=30

End With

End If

End Sub

Encore merci pour ton coup de main !
 
je ne peux que deviner ce que tu as entre les mains.
Et si ce que je devine est exact, celui qui a écrit ce code est un rhinocéros infirme.
Que ferait ceci :
VB:
Sub Tombola()
    Dim Aleatorio As Integer, plage As Range, x As Integer
     Set plage = Sheets("Hoja2").Columns(1)
     With Sheets("Hoja2").Columns(1)
       x = WorksheetFunction.CountA(plage)
       If x > 0 Then
          Aleatorio = WorksheetFunction.RandBetween(1, x)
            Range("C7") = .Range("A" & Aleatorio).Value
            .Range("A" & Aleatorio).EntireRow.Delete
        Else
          MsgBox "Se han acabado los números"
          .Cells(1, 1).Value = 1
          .DataSeries xlColumns, Stop:=30
    End If
     End With
End Sub

Sans préjudice de la remise en cause même d'autres choses (à commencer par la nécessité d'une feuille "hojas2", à remplacer avantageusement par un simple array)
 
J'imagine la tête du rhinocéros infirme !!!!
Je ne peux que te remercier vivement, ta proposition est exactement ce que je rechercher !!
Il ne me reste plus qu'à l'utiliser à bon escient.
Merci et au plaisir de profiter à nouveau de tes compétences.
Bonne journée.
 
- 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

Discussions similaires

Réponses
1
Affichages
221
Réponses
40
Affichages
1 K
  • Question Question
Microsoft 365 tableau d'alerte
Réponses
2
Affichages
102
Réponses
5
Affichages
1 K
Réponses
1
Affichages
115
  • Question Question
Microsoft 365 Carte géogrpahique
Réponses
6
Affichages
245
Réponses
4
Affichages
144
  • Question Question
Microsoft 365 Liste de choix...
Réponses
8
Affichages
162
Retour