Générer des nombres aléatoires qui se suivent

Lust

XLDnaute Nouveau
Bonjour à tous,

Mon problème est le suivant : je cherche à générer une suite de nombres aléatoires qui se suivent (ne pas faire un bond de 0 à 100 mais que cela se fasse de manière progressive) dont leur moyenne est égale à un nombre prédéfini.
Son application servirait à obtenir un profil quelconque de vent (toute les 1/2-heures par exemple sur 1 an) dont je connais la moyenne mensuelle (par exemple 3 m/s). Les valeurs doivent donc être > 0 m/s et < 25-30 m/s (pour rester réaliste).
J'ai essayé avec LOI.NORMALE.INVERSE() mais l'apparition de nombres négatifs et/ou de 2 nombres consécutifs très éloignés pose problème dans le réalisme attendu... J'ai également tenté avec les fonctions ALEA() et ALEA.ENTRE.BORNES() où j'arrive à obtenir une variation progressive mais pas à considérer la moyenne.
Je pense qu'un codage en VBA peut résoudre cela mais je suis novice en VBA ;)

Merci d'avance!

Lust
 

Lust

XLDnaute Nouveau
Re : Générer des nombres aléatoires qui se suivent

Bonjour,

J'ai retravaillé le sujet et je pense avoir réussi à obtenir ce que je voulais (faire un décalage de 4 colonnes entre 2 itérations + conservation des formules :cool: ). Pour les intéressés ;) :

Code:
Sub profil_vent()
Dim Tabvent As Variant, cmpt1 As Long, cmpt2 As Integer

ecart=1000

Tabvent = Range(ActiveCell, ActiveCell.Offset(ecart, 41)).Formula

For i = 1 To 10
    moy = Sheets("Vitesse vent").Range("B" & i + 1).Value
    cmpt2 = (4 * i) 
    For cmpt1 = LBound(Tabvent, 1) To UBound(Tabvent, 1)
        Tabvent(cmpt1, cmpt2) = DistrQsN(Rnd, moy, 1.2)
        If Tabvent(cmpt1, cmpt2) < 0 Then
            Tabvent(cmpt1, cmpt2) = 0
        End If
    Next cmpt1
Next i

Range(ActiveCell, ActiveCell.Offset(ecart, 41)).Formula = Tabvent
End Sub

Un grand merci à vous Dranreb pour le temps consacré et votre fonction "DistrQsN" :D

Lust
 
Dernière modification par un modérateur:

Discussions similaires

Statistiques des forums

Discussions
314 634
Messages
2 111 434
Membres
111 135
dernier inscrit
jessica.goncalves6@gmail.