bonjour.
Voilà pour mon stage je viens de commencer la programmation sous Vba, et je dois écrire un programme qui simule different scénario.
j'ai déjà commencé à écrire des fonction et procédure mais là je coince.
je dois sauvegarder les résultats que j'obtiens dans ma procédure sous forme de tableaux et je ne sais pas comment faire (je suis nul en VBA) j'explique ma démarche pour créer la simulation de la consommation d'une bric fonctionnelle électronique (ne me demandez pas ce que c'est moi je n'ai pas le droit dont parlé )
j'ai créé un premier tableau pour représenter le temps utilisation (en fait je crée une distribution d'une population) et un deuxième tableau qui lui représente la durée de vie du système.
je fais ensuite une interpolation et je lance un calcul avec une variable aléatoire pour recueillir des données.
je les intègre ensuite dans un précédeur qui carcule la charge électrique consommée est le temps d'utilisation.
Là où je coince c'est pour créer une procédure qui récupère la valeur de la charge, elle doit me retourner un tableau avec la répartition de la consommation (la charge) en pourcentage (en paramètre d'entrée je la charge Min et Max).
je ne sais pas si c'est assez clair.
merci d'avance.ps: je joint un classeur excel avec un exemple et le programme que j'ai fais.
charge.zipCode:Function interpolation(x, tableau) 'calcul l'interpolation maxiX = tableau.Columns.Count 'connaitre le nombre de colonne For j = 1 To maxiX If x >= tableau(1, j) Then i = i + 1 Else j = maxiX End If Next j a = tableau(2, i) b = tableau(2, i + 1) p = a + (b - a) * (x - tableau(1, i)) / (tableau(1, i + 1) - tableau(1, i)) interpolation = p End Function Function tempUtilAlea() 'calcule temps d'utilisation tempUtilAlea = interpolation(Rnd, Range("tableau")) End Function Function tempCycleAlea() 'calcule temps de cycle ou de vie' tempCycleAlea = interpolation(Rnd, Range("tpsCycle")) End Function Sub cycle(ByRef charge, tpsUtil) tu = tempUtilAlea() tc = tempCycleAlea() tps = tc charge = 0.002 * tu + 0.0002 * tc 'calcule de la charge consommée End Sub Public Sub vie(dv) Call cycle(charge, tps) End Sub Sub charge(Nb, chargeMin, chargeMax) 'nb est ma population While i < Nb Call vie(dv) 'appel a la fonction 'il me manque ici la partie pour crée le tableau pour pouvoir avoir la repartition i = i + 1 End Sub Sub toto() 'fonction de je me sert pour le moment pour afficher Call cycle(ch, t) MsgBox ch & "/" & t End Sub 'End Sub
-----