Macro Excel pour réduire le coef de variation d'un série

Bonjour à tous,

Voici mon problème :

j'ai un fichier excel avec 8 valeurs par ligne sur 5600 lignes environ et pour les quelles je calcule la moyenne, l'écart type et le coefficient de variation. Ce dernier doit être inférieur à 1 mais ça n'est pas souvent le cas. Mon objectif est de construire une macro qui me permettent de trouver et de supprimer 2 valeurs de ma série afin de rapprocher au plus près de 1 le coefficient de variation.

Voici le schéma de mon tableau :

Label Type Element V1 V2 V3 V4 V5 V6 V7 V8 moyenne Ecart-type coef de variation

Blanc1 SAM 0 1 Li7 214 234 220 246 266 256 244 210 236,25 18,9851916 8,036059936

Je précise que je ne connais pas du tout la programmation sur excel.

Avez-vous des idées?

Merci d'avance

Gerey

Bonjour,

Voici une méthode Bulldozer qui consiste à effectuer la suppression de chaque couple de valeurs et à contrôler le résultat obtenu afin de retenir celui qui se rapproche le plus de 1.

A+

37essai.xlsm (23.01 Ko)

Bonjour,

Merci pour la rapidité et l'efficacité.

ça marche plutôt bien, merci.

Mais si j'ai bien compris il faut que je copie/colle mes lignes dans le tableau et que je lance la macro. N'y a t-il pas moyen de supprimer automatiquement le couple et d'incrémenter sur toutes les lignes du tableau?

Gerey

'y a t-il pas moyen de supprimer automatiquement le couple et d'incrémenter sur toutes les lignes du tableau ?

Si bien sûr, mais je souhaitais te montrer le détail de la méthode afin que tu puisses te l'approprier.

Si le résultat te convient, fais-moi passer un fichier avec quelques lignes afin que j'adapte le code.

A+

Oui, j'ai bien compris la méthode. Je n'avais pas penser à cette manière.

Voici un fichier

Merci beaucoup

10test.xlsx (11.21 Ko)

Le code proposé effectue un comparatif des valeurs du coefficient de variation en fonction du couple de valeurs supprimé.

Pour faire ce comparatif, il faut que les calculs de moyenne, écart-type et coefficient de variation soient effectués pour chaque couple. Ce calcul n'étant pas réalisé par le code, j'ai placé les formules dans les colonnes L,M et N.

A toi de vérifier que ces formules correspondent à ton attente.

A+

20test-1.xlsm (21.50 Ko)

Ok,

C'est vraiment super.

J'ai fait le test et ça marche super bien sauf pour ce type de cas.

blanc2 SAM 0 2 Y89 158 0 0 0 0 0 0 0 19,75 52,25358839 264,5751311

Lorsque la première valeur est supprimée, la moyenne est à 0 et donc erreur de calcul sur le coef.

Mais ça n'est pas très grave, ces valeurs sont fausses ou inexploitable

Pour la formule du coefficient de variation, tu peux écrire

=SIERREUR(M2/L2;0)

Ainsi, tu prends en compte la division par zéro.

A+

Salut,

Je viens de faire tourner le programme, ça marche super bien, j'te remercie vraiment. Par contre le code ne distingue pas les valeurs du coef de variation qui sont déjà inférieures à 1 et supprime deux valeurs de la série, ce qui m'embête.

Que faudrait-il que je rajoute pour qu'il ne s'attarde plus sur ces séries pour les quelles coef var < 1?

++

Bonjour,

Tu peux essayer avec le code suivant :

Option Explicit
Sub Lancer_Click()
Dim i As Byte, j As Byte
Dim k As Long
Dim T1 As Double, T2 As Double, R As Double
Dim Adresse1 As String, Adresse2 As String
    Application.ScreenUpdating = False
    For k = 2 To Range("A" & Rows.Count).End(xlUp).Row
    R = 9 ^ 9
        For i = 4 To 11
            T1 = Cells(k, i)
            Cells(k, i) = ""
            For j = 4 To 11
                If j <> i Then
                    T2 = Cells(k, j)
                    Cells(k, j) = ""
                    If Cells(k, 14) >= 1 And Cells(k, 14) < R Then
                        R = Cells(k, 14)
                        Adresse1 = Cells(k, i).Address
                        Adresse2 = Cells(k, j).Address
                    End If
                    Cells(k, j) = T2
                End If
            Next j
            Cells(k, i) = T1
        Next i
        Range(Adresse1).Interior.ColorIndex = 6
        Range(Adresse2).Interior.ColorIndex = 6
    Next k
    Application.ScreenUpdating = True
End Sub

Les séries pour lesquelles le coefficient de variation est inférieur à 1 ne sont plus prises en compte.

Les deux valeurs qui permettent d’obtenir le résultat optimum ne sont plus supprimées mais simplement colorées en jaune.

A+

Rechercher des sujets similaires à "macro reduire coef variation serie"