DIV/0! résultat calcul MOY, génant pour mise en forme

Bonjour,

j'ai un petit problème sur la fin d'un programme.

Pour faire simple, j'importe des donnéees d'un autre fichier, je les mets en forme et j'envoie le tout sur l'onglet synthèse de mon classeur. Une fois cela fait je lance cette macro qui va "grisé" les lignes où il n'y a pas de valeurs, cellules qui contiennent la nature du cycle (charge/décharge/repos/etc).

Sub MEFsynthese()
        Worksheets("Synthese").Activate
        'Assombrissement des lignes "vides"
        lastRow5 = Cells(Rows.Count, 1).End(xlUp).Row
        For i = 14 To lastRow5
            If Cells(i, 4) = "" And Cells(i, 5) = "" And Cells(i, 6) = "" Then
               Range(Cells(i, 3), Cells(i, 18)).Select
            With Selection.Interior
               .Pattern = xlSolid
               .PatternColorIndex = xlAutomatic
               .ThemeColor = xlThemeColorDark1
               .TintAndShade = -0.249977111117893
               .PatternTintAndShade = 0
            End With
            End If
         Next i

End Sub

Le problème est que lorsque les bancs de tests plantent ou subissent des modifications on se retrouve avec des 0 dans les lignes de valeurs et mes calculs de Moy et Ecart Type renvoient #DIV/0! , ce qui entraine un arrêt de la macro.

divisionzero

J'utilise ses deux formules pour calculer la Moy et L'ET, quelqu'un saurait-il comment se débarasser de l'erreur #DIV/0! (j'ai essayé de faire des tests pour le remplacer par des "", mais ça n'a pas l'air de fonctionner)

      Cells(i, lastCol2 + 3) = Application.Average(rng)    
                Cells(i, lastCol2 + 4) = Application.StDev(rng)  

Ci-joint le fichier et un fichier à importer (choisir utilisateur forum quand vous cliquez sur le bouton "insérer" sur la feuille carton, les autres ont un chemin spécifique) pour tester.

Merci à ceux qui regarderont.

10test11-544a-s02.csv (11.56 Ko)
9sytelv6.xlsm (63.36 Ko)

Bonjour

Si tu veux éviter ce plantage dans le Code de MEFsynthese

tu peux toujours mettre en première ligne

On Error Resume Next

Cordialement

Bonjour Amadéus, merci de la réponse

En plaçant le code juste après le FOR :

Sub MEFsynthese()
        Worksheets("Synthese").Activate
        'Assombrissement des lignes "vides"
        'lastCol5 = Cells(13, Columns.Count).End(xlToLeft).Column
        lastRow5 = Cells(Rows.Count, 1).End(xlUp).Row
        For i = 14 To lastRow5
            On Error Resume Next
            If Cells(i, 4) = "" And Cells(i, 5) = "" And Cells(i, 6) = "" Then
               Range(Cells(i, 3), Cells(i, 18)).Select
            With Selection.Interior
               .Pattern = xlSolid
               .PatternColorIndex = xlAutomatic
               .ThemeColor = xlThemeColorDark1
               .TintAndShade = -0.249977111117893
               .PatternTintAndShade = 0
            End With
            End If
         Next i

End Sub

J'obtiens ça :

divisionzero2

Du coup la macro continue son cours. Je regarde toujours s'il n'y a pas moyen de retirer les #DIV/0!

Rechercher des sujets similaires à "div resultat calcul moy genant mise forme"