Nombre aléatoire

@Gabin37 , merci ! je pense que vous me reverrez puisque je suis sur excel VBA jusqu'à la fin de l'année il me semble

Bonjour,

Vous ne pouvez pas mélanger les variables ainsi. Attribuez une variable pour les colonnes, une pour les lignes.

Chaque boucle ouverte doit être fermée, ici vous n'en fermez qu'une donc :

Sub Exercice3()

Dim i As Integer, l as Integer, c as Integer

For c = 1 to 15
    For l = 6 to 30 
    Randomize
    'votre cellule à l'intersection de la colonne et la ligne = Int(50 * Rnd) + 1
    Next l 'prochaine ligne de la même colonne
Next c 'prochaine colonne où la boucle recommence à l=6, puis 7, etc ...

Cdlt,

Edit : Les colonnes sont plus souvent utilisées en valeur numériques pour être renvoyées dans l'objet cells(ligne, colonne).

@Ergotamine , merci beaucoup. C'est clair maintenant

Bonjour à tous,

j'ai extrait le bout de code de l'une de mes feuilles.

'Randomise between 2 limits: Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
' If necessary you can format the result with likein this Example: 
'                   FormatNumber((21.5 - 18.5 + 1) * Rnd + 18.5, 1)

        NewValue(I) = FormatNumber((Maxi - Mini + 1) * Rnd + Mini, 1) 

'Ici DoModulo est juste un paramètre de cette fonction (True/False) .sElle arrondit le résultat par pas de 0.5
        If DoModulo Then 
'Calculate the rest of a division:
' Use this formula because the "Mod" function return "Div by 0" when you have a decimal number like 0.5.
            Modulo(I) = NewValue(I) - 0.5 * Int(NewValue(I) / 0.5)
            If Modulo(I) <= 0.25 And Modulo(I) <> 0 Then
                Diff = -Modulo(I)
            ElseIf Modulo(I) <> 0 Then
                Diff = 0.5 - Modulo(I)
            End If
        End If

Désolé pour le mixte francais/anglais dans le code.

La fonction de base (randomise) est celle-ci avec Rnd(....):

(Maxi - Mini + 1) * Rnd + Mini, 1)

Si cela peut vous aider.

Cordialement

Bonsoir …

De l’utilisation d’outils disponibles avec, dans ce cadre , 2 types de raisonnement et 2 membres de la classe Range, Cells et Range (hé oui , pour prêter à confusion !) :

1-) Cellules parcourues par ligne et colonne par colonne de celle-ci donc 2 boucles (2 For imbriqués avec les 2 Next associés obligatoires)

Sub a1()
  Dim L As Byte, C As Byte ‘ avec ces nombres et le membre Cells
  For L = 6 To 30 'ligne par ligne
    For C = 2 To 15 'par colonne de la ligne
      Cells(L, C) = Int(50 * Rnd) + 1 ‘ou = Application.RandBetween(0, 50)
   Next
  Next
End Sub

2-) Cellules parcourues une par une donc une seule boucle

Sub a2()
  Dim R As Range ‘avec le membre Range
  For Each R In Range("B6:O30") ‘par cellule une par une
    R = Application.RandBetween(0, 50) ’ou = Int(50 * Rnd) + 1
  Next
End Sub
Rechercher des sujets similaires à "nombre aleatoire"