[EXCEL VBA]nombre au choix de l'ordinateur

Résolu/Fermé
iliesss Messages postés 113 Date d'inscription mardi 14 septembre 2010 Statut Membre Dernière intervention 26 octobre 2014 - 3 nov. 2010 à 12:17
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 7 nov. 2010 à 14:27
Bonjour,

j'ai une plage A1:A31 comment faire une macro qui affacte dans cette plage des nombre entre 8000,00 et 11000,00 de leur choix.

et merci
A voir également:

1 réponse

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
Modifié par pijaku le 3/11/2010 à 13:03
Bonjour,
Pour une plage plus importante, il faudra absolument* une autre macro. En attendant, voici ma contribution (modeste) à votre problème :

Dim Lig As Integer 
Randomize 
For Lig = 1 To 31 
toto: 
Cells(Lig, 1) = Round(Rnd * 100000, 0) 
If Cells(Lig, 1) < 11000 And Cells(Lig, 1) > 8000 Then 
Else 
GoTo toto 
End If 
Next


* Il convient habituellement d'éviter les goto toto...
Cordialement,
-- Il n'y a rien de tel qu'une question idiote, seulement une réponse idiote. A.Einstein --
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
3 nov. 2010 à 14:06
Bonjour,

peut-^tre + simple

Sub noter()
Dim cellule As Range
Dim nbre as integer
Application.ScreenUpdating = False
Randomize
For Each cellule In Range("A1:A31")
    nbre = Int(Rnd * 3000) + 8000
    cellule = nbre
Next cellule
End Sub
0
Salut Michel_m,
Effectivement, bien plus simple, plus rapide et aussi plus juste "programmaticalement" parlant.
Bonne journée
0
iliesss Messages postés 113 Date d'inscription mardi 14 septembre 2010 Statut Membre Dernière intervention 26 octobre 2014
7 nov. 2010 à 12:36
salut mr pijaku
merci pour toi et pour mr michel
ca marche tres bien.
mais si mon nombre contien deux chiffres apres la vergule comme faire SVP
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
7 nov. 2010 à 14:27
bonjour
Sub noter()
Dim cellule As Range
Dim nbre As Double
Application.ScreenUpdating = False
Randomize
For Each cellule In Range("A1:A31")
    nbre = Rnd * 3000 + 8000
    cellule = Round(nbre, 2)
Next cellule
End Sub
0