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 SubLe 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.
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.
Bonjour
Si tu veux éviter ce plantage dans le Code de MEFsynthese
tu peux toujours mettre en première ligne
On Error Resume NextCordialement
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 SubJ'obtiens ça :
Du coup la macro continue son cours. Je regarde toujours s'il n'y a pas moyen de retirer les #DIV/0!