Calcul de moyenne

fitts Messages postés 6 Date d'inscription mercredi 4 novembre 2009 Statut Membre Dernière intervention 1 décembre 2009 - 30 nov. 2009 à 14:45
fitts Messages postés 6 Date d'inscription mercredi 4 novembre 2009 Statut Membre Dernière intervention 1 décembre 2009 - 1 déc. 2009 à 08:17
Bonjour à tous, je débute dans le VBA.

Je vous explique mon problème

J'au graphique montrant une courbe sinusoïdale au début et qui se stabilise au fur et à mesure, jusqu'à devenir à peut près constante.

Je possède sur une feuille annexe une colonne regroupant tout les points de la courbe.

Je connais la cellune de départ de la colonne (dc du premier point) mais pas la dernière, car le nombre de valeurs varient en fonction l'essai.

Pour en venir à mon problème : Je dois calculer la moyenne des points en ne selectionnant uniquement que les points du palier stable

Pour les conditions : Je dois tester une 100taines de points avant de conclure qu'un point est valide.
La température du palier est attendu et dc connu, un point est valide que s'il est compris entre ( ex : 500°C + ou - 5 )

J'ai besoin qu'on m'éclair
Voilà j'espere avoir été assé précis

Merci

3 réponses

youdream Messages postés 29 Date d'inscription samedi 22 octobre 2005 Statut Membre Dernière intervention 21 mars 2011
30 nov. 2009 à 20:03
Salut fitts


Si j'ai bien compris ce que tu demandes, ca donnerai un truc comme ca

Sub NomMacro()

    Dim iLigne As Integer
    Dim dBorneSup, dBorneInf As Double
    Dim sFormule As String

    dBorneSup = 500 + ((500 * 5) / 100)
    dBorneInf = 500 - ((500 * 5) / 100)

    iLigne = 1 'Ligne à la quelle tu commence
    
    sFormule = "=MOYENNE("

    Do While Cells(iLigne, "A") <> ""

        If Cells(iLigne, "A") >= dBorneInf And Cells(iLigne, "A") <= dBorneSup Then
        
            If sFormule = "=MOYENNE(" Then
            
                sFormule = sFormule & "A" & iLigne
                
            Else

                sFormule = sFormule & ";" & "A" & iLigne
            
            End If

        End If
        
        iLigne = iLigne + 1

    Loop
    
    sFormule = sFormule & ")"
    Cells(1, "C").FormulaLocal = sFormule

End Sub


Bonne continuation.
0
fitts Messages postés 6 Date d'inscription mercredi 4 novembre 2009 Statut Membre Dernière intervention 1 décembre 2009
1 déc. 2009 à 07:39
Merci beaucoup,

Je vais essayer ça de suite. Je te tiens au courant
0
fitts Messages postés 6 Date d'inscription mercredi 4 novembre 2009 Statut Membre Dernière intervention 1 décembre 2009
1 déc. 2009 à 08:17
En fait j'ai un message d'erreur sur :

'Cells(1, "C").FormulaLocal = sFormule'

Et si je comprend bien et adapté à mon cas. Ton code doit me donner :

Sub NomMacro()

Dim iLigne As Integer
Dim dBorneSup, dBorneInf As Double
Dim sFormule As String

dBorneSup = 500 + 5
dBorneInf = 500 - 5

iLigne = 39 ' Première ligne de ma colonne
sFormule = "=MOYENNE("

Do While Cells(iLigne, "B") <> "" ' Je travail en colonne B

If Cells(iLigne, "B") >= dBorneInf And Cells(iLigne, "B") <= dBorneSup Then

If sFormule = "=MOYENNE(" Then

sFormule = sFormule & "B" & iLigne

Else

sFormule = sFormule & ";" & "A" & iLigne

End If

End If

iLigne = iLigne + 1

Loop

sFormule = sFormule & ")"
Cells(36, "B").FormulaLocal = sFormule ' Je veux mon résultat en cellule B36

End Sub

Mais la dernière ligne ne marche pas (surligné en jaune)
0
Rejoignez-nous