Résultat d'une fonction aléatoire dans une cellule

Résolu/Fermé
S.Court - 4 mars 2014 à 20:56
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 12 mars 2014 à 08:58
Bonjour,

Dans le cadre de mon stage de licence, je dois utiliser une formule qui choisit aléatoirement la valeur d'une cellule parmi une liste de mots. Voici la formule que j'utilise :

Public Sub Aléatoire()

Dim lngMinL As Long
Dim lngMaxL As Long
Dim lngMinC As Long
Dim lngMaxC As Long
Dim lngAleaC As Long
Dim lngAleaL As Long
Dim Answer As String


Sheets("Présence").Select
Range("B2:C2").Select

lngMinC = Selection.Columns(1).Column
lngMaxC = Selection.Columns.Count + lngMinC - 1
lngMinL = Selection.Rows(1).Row
lngMaxL = Selection.Rows.Count + lngMinL - 1

lngAleaL = (lngMaxL - lngMinL) * Rnd() + lngMinL
lngAleaC = (lngMaxC - lngMinC) * Rnd() + lngMinC




Cells(lngAleaL, lngAleaC).Activate


End Sub

La formule marche très bien mais le résultat s'affiche seulement dans la barre de formule ... Est il possible de faire apparaitre ce choix aléatoire dans une cellule ?

A voir également:

2 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
11 mars 2014 à 17:40
Bonjour,

Essaies :
Option Explicit
Public Sub Aléatoire()
Dim lngNbL As Long
Dim lngNbC As Long
Dim lngAleaC As Long
Dim lngAleaL As Long
  Worksheets("Présence").Select
  With Range("B2:D4")
    lngNbC = .Columns.Count
    lngNbL = .Rows.Count
    lngAleaC = Int(lngNbC * Rnd()) + 1
    lngAleaL = Int(lngNbL * Rnd()) + 1
    Range("A1").Value = .Cells(lngAleaL, lngAleaC).Value
  End With
End Sub
1
Merci beaucoup, c'est pile poil ce qu'il me fallait !
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
12 mars 2014 à 08:58
De rien, au plaisir de te relire sur le Forum

Cordialement
Patrice
0