Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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 !
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.
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
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.
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