en el siguiente link lo puede descargar
http://cid-31c63e44cbf9af3a.office.live.com/self.aspx/TRABAJOS%20EXCEL/Fallas.xlsBueno, cambie la macro, pero hace lo mismo, a continuación dejo la rutina toda comentada linea por linea:
Sub fallas()
Dim y As Integer
Dim z As Integer
contador = 0
y = 3
auxhis = 0
Sheets("Julio").Range("C11").Value = 0
Sheets("Julio").Range("C12").Value = 0
'seleccionamos la hoja julio
Sheets("Julio").Select
'seleccionamos el rango B1
Range("B1").Select
'seleccionamos la primer celda que vamos a evaluar (C3)
ActiveCell.Offset(2, 0).Select
'establecemos un ciclo para evaluar los rangos B3:K3,B5:K5 y B7:K7
For x = 1 To y
'establecemos un ciclo para evaluar desde la columna B hasta la k
For z = 2 To 11
'a esta variable le asignamos el valor que se encuentre en C12
historial = Sheets("Julio").Range("C12").Value
'evaluamos si la celda activa es diferente de 0
If (ActiveCell.Value <> 0) Or (ActiveCell.Value = "-") Then
'al ser asi, se desplaza una celda a la derecha
ActiveCell.Offset(0, 1).Activate
'las siguientes variables le otorgamos valor 0
contador = 0
auxhis = 0
Sheets("Julio").Range("C11").Value = contador
'si la anterior condicion no se cumple
Else
'evaluamos si la celda activa es 0
If (ActiveCell.Value = 0) Then
'al ser asi a la variable contador y auxhis le aumentamos su valor progresivamente de 1 en 1
contador = contador + 1
auxhis = auxhis + 1
'nos desplazamos una celda a la derecha
ActiveCell.Offset(0, 1).Activate
'seleccionamos el rango C11 y le asignamos el valor de la varible contador
Sheets("Julio").Range("C11").Value = contador
'terminamos con la segunda validacion
End If
'terminamos con la primera validacion
End If
'evaluamos si la cantidad de la variable auxhis es mayor que la cantidad de historial
If (auxhis > historial) Then
'al ser asi, entonces al rango C12 le asignamos la cantidad de la variable auxhis
Sheets("Julio").Range("C12").Value = auxhis
'si no se cumple la anterior condicion
Else
'le asignamos a C12 la cantidad del historial
Sheets("Julio").Range("C12").Value = historial
'finalizamos esta validacion
End If
'continuamos evaluando la siguiente celda hasta llegar a la columna K
Next
'evaluada este rango, aumentamos la cantidad de y y le sumamos 2 cantidades
y = y + 2
'seleccionamos el rango B1
Range("B1").Select
'nos desplazamos al siguiente rango para comenzar a evaluar nuevamente
ActiveCell.Offset(y - 1, 0).Activate
'empezamos a evaluar nuevamente
Next
'evaluamos el rango B9 si es igual a 0
If (ActiveCell.Value = 0) Then
'al ser asi, a la cantidad actual del contador y del auxhis le asignamos 1 cantidad mas
contador = contador + 1
auxhis = auxhis + 1
'seleccionamos el rango C11 y le asignamos la cantidad del contador
Sheets("Julio").Range("C11").Value = contador
'evaluamos si la cantidad de auxhis es mayor a la del historial
If (auxhis > historial) Then
'al ser asi, asignamos al rango C12 el valor de auxhis, de lo contrario queda la de historial
Sheets("Julio").Range("C12").Value = auxhis
'finalizamos la segunda validacion
End If
'finalizamos la primer validacion
End If
End Sub
Espero que mi ayuda le sea de utilidad, recuerde que cualquier consulta me la puede hacer en mi perfil y con mucho gusto le colaboro, POR FAVOR NO OLVIDAR PUNTUAR Y FINALIZAR LA PREGUNTA, que tenga un feliz día!