Adaptation à l'intérieur d'une procedure simple

bonjour à tous

j'ai la procedure suivante qui donne un nomble alea de 1 à 9

Private Sub Worksheet_Calculate()
  Randomize
  If Range("$A$1") = 1 Then
    Range("A3") = Int(9 * Rnd + 1)
  End If
End Sub

Comment rendre automatique le changement du nombre (ici 9) dans int(9*Rdn + 1) par un nombre contenu dans une cellule (B1)

Cela revient à écrire dans ma procédure à la place de int(9*Rdn +1) => int( la valeur de "B1" *RDN + 1)

Merci de votre aide

Bonjour,

Il te suffit de remplacer 9 par Range("B1") :

Private Sub Worksheet_Calculate()
    Randomize
    If Range("A1") = 1 Then
        Range("A3") = Int(Range("B1") * Rnd + 1)
    End If
End Sub

Pour éviter une erreur dans le cas où B1 ne contient pas un valeur numérique, tu peux ajouter une condition :

Private Sub Worksheet_Calculate()
    Randomize
    If Range("A1") = 1 And IsNumeric(Range("B1")) Then
        Range("A3") = Int(Range("B1") * Rnd + 1)
    End If
End Sub

Cordialement,

bonsoir Sebastien

C'est super sympa

J'espére être un des votres bientôt pour vous aider lorsque ma formation VBA sera terminé

là je progresse quand même nos programmes Excels lourds nous obligent à utiliser des procédures automatiques VBA

Notre ambition consiste à rendre automatique 99 % du programme automatique (hors saisies)

je vais surement encore avoir besoin de faire appel à vous

Une fille de notre équipe "Chat" très bonne en Excel s'est inscrite today elle aussi va suivre des cours VBA et sans doute aidera par la suite à la recherche de solution sur votre site

merci encore

bravo pour ton équipe et ton job

cordialement

JB

Rechercher des sujets similaires à "adaptation interieur procedure simple"