Macro para indicar el menor en un fila

Soy nuevo aquí, tengo una duda en una planilla de excel 2010. Espero q alguien me ayude

Se trata de carga de combustible de equipos de mi empresa, diariamente del 1 al 31 de cada mes. Cada carga tiene un horometro (hs) o odometro (km). El PROBLEMA ocurre cuando ingreso un horometro o odometro menor al del dia o días anteriores. No necesariamente los equipos realizan cargas todos los días. Quiero que me avise o le de otro color de formato al valor de esa celda o simplemente me coloree la celda.

Les dejo un ejemplo de como seria la carga que hago en la planilla diariamente de forma manual

Aquí en este enlace hay una imagen de la planilla de excel >>>

1 respuesta

Respuesta
1

Si no he entendido mal, el horómetro de un motor en un día concreto no puede ser inferior al de los días anteriores, ¿no? Además viendo la foto subida en la fila 7 siempre estará todas las descripciones, ¿verdad? Me explico porque. Para que podamos ir recorriendo los horómetros, éstos deben partir de un posición fija y deben ser periódicos porque si fueran aleatorios sería harto complicado. Ten muy, muy en cuenta esto último. En conclusión, dime en que columna de la fila 7 empieza el primer horómetro y si se van repitiendo cada dos columnas.

mfervic, desde ya gracias por tu respuesta ante mi problema.

mira en realidad como vos dijiste en la fila 7 efectivamente siempre van a estar todas las descripciones

con respecto a la duda en concreto sobre en que columna de la fila 7 empieza el primer horometro, en realidad las cargas pueden darse en cualquiera de ellas (en cualquier fecha del mes), osea cada equipo esta identificado con un numero de interno, y dicho equipo puede o no cargar en un dia especifico, dependiendo de las necesidades de trabajo.

exactamente no sabría que dia del mes va a tener el primer horometro un equipo en común.

fijate que en la imagen los equipos están puestos en una columna hacia abajo (vertical) y los datos están cargados en un fila (horizontal) para cada equipo.

lo que en definitiva necestaria tener una macro para cada fila de un equipo. y del 01 al 31 de cada mes

parece ser complicado verdad? espero poder solucionarlo

desde ya gracias.

slds

De nuevo alepastrana. Perdona mi tardanza. Te quiero preguntar más dudas. ¿Tienes una hoja para cada mes o tienes todo el año en una sola hoja? En el supuesto caso de que fuera una hoja por mes (que es lo que te aconsejo para estructurar más el libro y que resulte más fácil las busquedas), lo que quieres es seleccionando un equipo en concreto te diga si algún día de ese mes, el horómetro es inferior a días anteriores, ¿esto es así? Con respecto a las columnas puede que no me haya explicado claramente. ¿En la foto faltan las columnas E y F. Lo que te quiero preguntar si estas dos columnas son otro día con su columna horómetro y su columna litros o son dos columnas que especifican otra información? Por último, cuando me refiero a que son columnas periódicas es a que un día en concreto tiene su columna de horómetro y litro, siguiente día al anterior con las mismas columnas y así con todos los días del mes independientemente de si tienen datos o no y que no tiene alguna columna "extra" para guardar más información, ¿me confirmas esto último?

Ejemplo para clarificar:

Mes de junio

Junio día 1 día 2 día 3...

Equipo horó litros horó litros horó litros ...

A (en toda la fila con datos o sin ellos)

B (en toda la fila con datos o sin ellos)

buen dia, mira con respecto a lo primero, tengo una HOJA PARA CADA MES
Las columnas E y F especifican otro tipo de información (detalle marca y modelo del equipo) y si exactamente UN DIA EN CONCRETO TIENE LA LAS COLUMNAS DE HOROMETROS Y LITROS Y ASI CADA DIA DEL MES DEL 01 AL 31 DEPENDIENDO DEL MES

mas que seleccionar un equipo en concreto, quería saber si existe alguna manera de que aunque sea me marque con color el horometro que este ingresado erróneamente (osea menor al de días anteriores); porque en la columna D como ves en imagne, existen varios equipos o n° de internos de equipos.

desde ya gracias.

saludos

Haber si te vale con este código. Abre el proyecto, create un módulo y pega el sub de a continuación. Para poder ejecutarlo, create un botón o asígnale a una celda el módulo.

Option Explicit
Sub buscar()
'constantes que deberás modificar según tus necesidades
'ojo!! los días es con respecto al horómetro
Const motor = "D8"
Const primer_dia = "G8"
Const ult_dia = "BO8"
'variables
Dim horo As Single
Dim i As Integer, j As Integer, c As Integer
Dim motores As Integer, días As Integer
'inicio variables con respecto al motor
Range(motor).Select
motores = ActiveCell.Row
c = ActiveCell.Column
'inicio variables con respecto al día
Range(primer_dia).Select
días = ActiveCell.Column
'comenzamos con la búsqueda
i = 0
Do While Cells(motores + i, c).Value <> ""
'voy buscando los valores de horómetro
horo = 0
'recorro los horómetros de cada día por cada motor
'por eso pongo que vaya saltando de dos en dos
For j = días To Range(ult_dia).Column Step 2
'le doy el primer valor no vacío del horómetro a la variable horo
If Cells(motores + i, j).Value <> "" Then
If horo = 0 Then
horo = Cells(motores + i, j).Value
'una vez que horo tiene valor hago las comparaciones
ElseIf Cells(motores + i, j).Value < horo Then

'si es menor, relleno color y negrita
Cells(motores + i, j).Font.Bold = True
Cells(motores + i, j).Interior.Color = 65535

'sino es menor, asigno a horo el nuevo valor
Else: horo = Cells(motores + i, j).Value
End If
End If

'siguiente día
Next j
'siguiente motor
i = i + 1
Loop
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas