Bonjour,
une solution est d'incorporer une gestion d'erreur dans votre code :
For Each sht In Worksheets 'boucle sur toutes les feuilles du classeur
For Each Cel In sht.UsedRange 'boucle sur les cellules d'une feuille
' mise en place de la gestion d'erreur afin de ne pas arrêter le déroulement du code
On Error Resume Next
' s 'il y a une erreur sur une cellule
If Err > 1 Then
' on passe la cellule à 0
Cel.Value = 0
' on remet la gestion d'erreur à 0
Err = 0
End If
If Cel.Value = Commande And Cel.Offset(0, 1).Font.Underline = xlUnderlineStyleSingle And Cel.Offset(0, 1).Interior.ColorIndex = 43 Then
CompteurHeureDebit = Cel.Offset(0, 1).Value + CompteurHeureDebit ' somme des heures débit
CompteurDebit = CompteurDebit + 1 ' nombre d'occurence débit
ElseIf Cel.Value = Commande And Cel.Offset(0, 1).Font.Underline = xlUnderlineStyleSingle And Cel.Offset(0, 1).Interior.ColorIndex = 6 Then
CompteurHeureUsi = Cel.Offset(0, 1).Value + CompteurHeureUsi ' somme des heures usinage
CompteurUsi = CompteurUsi + 1 ' nombre d'occurence usinage
ElseIf Cel.Value = Commande And Cel.Offset(0, 1).Font.Underline = xlUnderlineStyleSingle And Cel.Offset(0, 1).Interior.ColorIndex = 15 Then
CompteurHeureSer = Cel.Offset(0, 1).Value + CompteurHeureSer ' somme des heures usinage
CompteurSer = CompteurSer + 1 ' nombre d'occurence sertissage
ElseIf Cel.Value = Commande And Cel.Offset(0, 1).Font.Underline = xlUnderlineStyleSingle And Cel.Offset(0, 1).Interior.ColorIndex = 40 Then
CompteurHeureMon = Cel.Offset(0, 1).Value + CompteurHeureMon ' somme des heures montage
CompteurMon = CompteurMon + 1 ' nombre d'occurence montage
End If
' on arrête la gestion d'erreur
On Error GoTo 0
Next
Next
En faisant comme cela, la valeur "erreur" de la cellule n'est pas modifiée, seule sa "représentation" sous VBA l'est :
la valeur de Cel est égale à 0, mais Cel est une copie de la cellule de la plage considérée.
Donc mise en place de la gestion d'erreur, s'il y a erreur, valeur = à 0, puis init des erreurs pour la boucle suivante.
Ca a l'air de fonctionner, à tester pour la cohérence des résultats.
@ bientôt
LouReeD