Encontrar una hora concreta, un valor máximo y un mínimo en un listado empleando VBA

hola estoy con una macro que ya me esta sacando canas,

necesito saber la posición de una hora en especifico para ello uso el siguiente código

NDPI = Worksheets("DATOS_COMPLETOS").Range("A65536").End(xlUp).Row 'Numero de datos extraídos de PI
With Worksheets("DATOS_COMPLETOS").Range("A5:A" & NDPI)
Set Celda = .Find(what:=Format(TimeSerial(1, 0, 0), "short time"))
DCelda = Celda.Address(False, False) 'Celda donde inicia el segundo periodo
DCelda = Replace(DCelda, "A", "")
End With
NDp = DCelda - 6 'Numero de datos por periodo

resulta que la hora que estoy buscando es la 1:00:00 am y el programa me encuentra las 12:00:10 am. Que estoy haciendo mal?

Vale la pena resaltar que los datos se encuentran en la hoja "DATOS_COMPLETOS" y la macro se encuentra sobre otra hoja que he llamado "BÚSQUEDA".

Ahora desde la misma Hoja "BÚSQUEDA" quiero encontrar el máximo y mínimo de las columnas B hasta la ultima que tenga datos (Hoja "DATOS_COMPLETOS"), para esto uso

Set Rango = Worksheets("DATOS_COMPLETOS").Range(Cells(5, i + 1), Cells(j * NDp, i + 1))
'Ahora recorro para cada subestación y cada periodo de tiempo buscando el máximo y el mínimo y lo escribo en la hoja "RESUMEN"
'Set Rango = Range(Cells(5, i + 1), Cells(j * NDp, i + 1))
Set vmax = Rango.Find(Application.WorksheetFunction.Max(Rango))

lo cual no me funciona, ya que estoy manipulando información de una hoja con una macro en otra hoja. Alguna idea?

Gracias

1 Respuesta

Respuesta
1

Con lo siguiente puedes encontrar la 1:00:00 am, la macro busca en toda la hoja.

Sub macro()

Sheets("DATOS_COMPLETOS").Select
ufila = ActiveCell.SpecialCells(xlLastCell).Row
ucol = ActiveCell.SpecialCells(xlLastCell).Column
For j = 1 To ucol
For i = 1 To ufila
If Cells(i, j) = "4.16666666666667E-02" Then
DCelda = Cells(i, j).Address(False, False)
End If
Next
Next
vmax = Application.Max(Range("B1:B" & ufila))
vmin = Application.Min(Range("B1:B" & ufila))

end sub

En DCelda te deja la celda donde se encuentra la 1:00:00 am

En vmax de tpone el valor máximo de la columna B

En vmin de tpone el valor mínimo de la columna B

Saludos. Dam
Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas