Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

sauvegarde données sous VBA




  1. #1
    soldius87

    sauvegarde données sous VBA

    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.
    Code:
    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
    charge.zip

    -----


  2. Publicité
  3. #2
    Jack

    Re : sauvegarde données sous VBA

    Un conseil pour encourager les gens à lire ton code: présente-le idéalement en l'indentant correctement et en l'aérant en sautant quelques lignes

  4. #3
    soldius87

    Re : sauvegarde données sous VBA

    Bonjour Jack.
    merci pour ta réponse et ton conseil.
    c'est vrai que mon code est mal aéré.
    j'ai un peu avancé et voila ou je suis arrivé.
    maintenant j'ai une procédure qui contient une boucle while qui a comme argument mon nombre de population (un nombre de systèmes pour créer un répartion) ainsi qu'une charge minimale est une maximale de conso.
    je crée ensuite un tableau de 10 colonnes qui représente une plage de conso (en fait j'utilise la formule (charge max-charge Min)/10) ensuite a chaque iteration j'obtiens une valeur de charge que je veux classer dans mon tableau (exemple : j'ai une charge de 0.63 Ah et une autre de 0.03 Ah je mets un 1 dans la colonne de la plage qui va de 0 à 0.5 Ah et un 1 dans la plage qui va de 0.5 à 1 Ah et ainsi de suite) ainsi je pourrais calculer les pourcentages et tracer une courbe de tendance.
    pour résumer: 1/ comment je crée le tableau et lui affecte les résultats.
    2/ comme j'ai plusieurs scénarios comment créer automatiquement à nouveau tableau pour chacun retiration.
    Code:
    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
    
    'calcule temps d'utilisation
    Function tempUtilAlea()
    tempUtilAlea = interpolation(Rnd, Range("tableau"))
    End Function
    
    'calcule temps de cycle
    Function tempCycleAlea()
    tempCycleAlea = interpolation(Rnd, Range("tpsCycle"))
    End Function
    
    'calcul nombre cycle
    Function NombreCycle()
    NbCycle = interpolation(Rnd, Range("NbCycle"))
    NombreCycle = CInt(NbCycle)
    End Function
    
    'calcul charge et temps de cycle'
    Sub cycle(ByRef charge, tpsUtil)
    tu = tempUtilAlea()
    tc = tempCycleAlea()
    tpsUtil = tc
    charge = Range("A112") * tu + (Range("B112") + Range("c112")) * tc 'calcule de la charge consommée
    End Sub
    
    'calcul la charge total
    Sub vie(ByRef ChargeTotal)
    Call NombreCycle
    ChargeTotal = charge * NombreCycle
    End Sub
      
    'sauvegarde et affichage
    Sub sauvegarde(Nb, chargeMin, chargeMax)
    
    Do While Nb >= 0
    End Sub


  5. #4
    Jack

    Re : sauvegarde données sous VBA

    Il ne manque plus qu'une indentation correcte et ce sera parfait

Sur le même thème :

Discussions similaires

  1. application pour stoker les données in utlisant le vba sur excel avec une interface
    Par soumayass dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 24/04/2013, 16h17
  2. Réponses: 4
    Dernier message: 08/03/2012, 16h35
  3. problème de sauvegarde avec VBA 2007
    Par foudefoot dans le forum Programmation et langages, Algorithmique
    Réponses: 4
    Dernier message: 04/11/2011, 09h05
  4. SOS!!!problème sauvegarde données sur WORD
    Par caramelise13 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 25/04/2009, 10h44