XL 2019 valeur aléatoire à deux décimale

Sheldor

XLDnaute Occasionnel
Supporter XLD
Bonjour,

jusqu'à tout à l'heure je pensais très simple de générer des valeurs entre 0 et 1 avec deux chiffres après la virgule avec cell.Value = (Int(Rnd() * 100)) / 100
eh bien ça ne marche pas du tout... soit je suis à côté de la plaque soit c'est l'ordi qui fonctionne comme ça (comme quand on fait 4.3-4.2 ça fait pas 0.1) mais j'ai plein de chiffres après la virgule que je ne veux pas...

si quelqu'un avait une idée...
très grand merci...

nico
 

Pièces jointes

  • ajout_centieme.xlsm
    17 KB · Affichages: 5

patricktoulon

XLDnaute Barbatruc
re
intérréssant ce truc
même avec ta formule excel dès que je pousse un peu sur les decimale je déraille
du coup j'ai bloquer en ABS
VB:
Sub Macro1()
    With Selection
       .NumberFormat = "0.000000000000000"
       .FormulaArray = "=ABS(INT(RAND()*100 ) /100)"
        .Value = .Value
      End With
End Sub
Quand je reviens en format standard avec les decimal mod 10 je me retrouve toujours avec 1 seule décimale
 

patricktoulon

XLDnaute Barbatruc
re
Bonjour @mapomme
et oui Fix
et c'est @mapomme qui gagne le point

VB:
'version2 sans doublons
Sub Bouton1_Cliquer()
    Dim valeur#
    Randomize
    ReDim t(1 To Selection.Cells.Count)
    Selection.NumberFormat = "#0.0000000000000"
    Do While i < UBound(t)
        valeur = Fix(Rnd * 100) / 100
        x = Application.IfError(Application.Match(valeur, t, 0), 0)
        If x = 0 Then i = i + 1: t(i) = Abs(valeur)
    Loop
    Selection = Application.Transpose(t)
End Sub
 

Modeste geedee

XLDnaute Barbatruc
Bonjour,

jusqu'à tout à l'heure je pensais très simple de générer des valeurs entre 0 et 1 avec deux chiffres après la virgule avec cell.Value = (Int(Rnd() * 100)) / 100
eh bien ça ne marche pas du tout... soit je suis à côté de la plaque soit c'est l'ordi qui fonctionne comme ça (comme quand on fait 4.3-4.2 ça fait pas 0.1) mais j'ai plein de chiffres après la virgule que je ne veux pas...

si quelqu'un avait une idée...
très grand merci...

nico
Bonsour®
comme ceci
il n'est pas précisé "sans doublons"

VB:
Sub Bouton1_Cliquer()

For Each cell In Selection
Randomize
cell.Value = 10 ^ -2 * (Int(Rnd() * 10 ^ 2))
cell.NumberFormat = "0.00"
Next
End Sub
 
Dernière édition:

Statistiques des forums

Discussions
312 508
Messages
2 089 138
Membres
104 047
dernier inscrit
bravetta