** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Macro maximos y minimos
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoMacro maximos y minimos

 Responder Responder
Autor
Mensaje
a7024782 Ver desplegable
Nuevo
Nuevo


Unido: 29/Noviembre/2018
Localización: valencia
Estado: Sin conexión
Puntos: 3
Enlace directo a este mensaje Tema: Macro maximos y minimos
    Enviado: 29/Noviembre/2018 a las 20:18

Saludos a todos. estoy buscando ayuda para resolver lo siguiente:

Tengo una hoja con un rango de datos de tres columnas: fecha, precio máximo y precio mínimo; de ese rango necesito extraer en otro rango de la misma hoja cuatro categorías de resultados, a saber:

1)      El precio máximo más alto.

2)      El precio máximo más bajo.

3)      El precio mínimo más alto.

4)      El precio mínimo más bajo.

Estos resultados serían filtrados según una fecha inicial y otra final y un número especifico de resultados; es decir que, si se especifica que muestre un resultado para 5,15,30 días u otra cantidad, devolverá esa cantidad de resultados.

Alguien me facilitó una macro para llevar a cabo este propósito; funciona, pero con un detalle, y perdí contacto con la persona que desarrolló la macro: cuando muestra los resultados para la categoría precio mínimo más bajo (4), los valores son correctos, pero toma las mismas fechas de la categoría precio mínimo más alto (3), lo cual es incorrecto.

Anexo la hoja a ver si pueden ayudarme a corregir la macro ya que mis conocimientos de programación son muy limitados. Gracias anticipadas


La macro es esta

Sub filtrar_maximos_minimos()
inicio = Range("f2")
Final = Range("f3")
cantidad = Range("f4")
Set datos = Range("a1").CurrentRegion
datos.AutoFilter
inicio = ">=" & Format(inicio, "mm/dd/yyyy")
Final = "<=" & Format(Final, "mm/dd/yyyy")
ActiveSheet.Range(datos.Address).AutoFilter Field:=1, Criteria1:= _
        inicio, Operator:=xlAnd, Criteria2:=Final
        datos.SpecialCells(xlCellTypeVisible).Copy Destination:=Range("k1")
Set tabla = Range("k1").CurrentRegion
With tabla
    filas = .Rows.Count
    .Sort key1:=Range(.Columns(2).Address), order1:=xlDescending, Header:=xlYes
End With
datos.AutoFilter
Range("e9").Resize(1000, 6).Clear
Set tabla1 = Range("e9").Resize(cantidad, 2)
Set tabla2 = Range("h9").Resize(cantidad, 2)
Set tabla3 = tabla1.Rows(cantidad + 4).Resize(cantidad, 2)
Set tabla4 = tabla2.Rows(cantidad + 4).Resize(cantidad, 2)
tabla1.Value = tabla.Cells(2, 1).Resize(cantidad, 2).Value
tabla2.Value = tabla.Cells(filas - cantidad + 1, 1).Resize(cantidad, 2).Value
With tabla
    filas = .Rows.Count
    .Sort key1:=Range(.Columns(3).Address), order1:=xlDescending, Header:=xlYes
End With
With tabla3
    .Columns(1).Value = tabla.Cells(2, 1).Resize(cantidad, 1).Value
    .Columns(2).Value = tabla.Cells(2, 3).Resize(cantidad, 1).Value
    .Cells(0, 1) = "PRECIO MINIMO MAS ALTO"
End With
With tabla4
    .Columns(1).Value = tabla.Cells(2, 1).Resize(cantidad, 1).Value
    .Columns(2).Value = tabla.Cells(filas - cantidad + 1, 3).Resize(cantidad, 1).Value
    .Cells(0, 1) = "PRECIO MINIMO MAS BAJO"
End With
tabla.Clear
Set tabla = Nothing: Set tabla1 = Nothing
Set tabla2 = Nothing: Set tabla3 = Nothing: Set tabla4 = Nothing
Range("F9:F100").Select
    Selection.NumberFormat = "0.00000000"
Range("I9:I100").Select
    Selection.NumberFormat = "0.00000000"
    Range("E9:E100").Select
    Selection.NumberFormat = "m/d/yyyy"
Range("h9:h100").Select
    Selection.NumberFormat = "m/d/yyyy"

Range("E8:I100").Select
    With Selection.Font
        .Name = "Calibri"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ThemeColor = xlThemeColorLight1
        .TintAndShade = 0
        .ThemeFont = xlThemeFontMinor
    End With
Range("E8").Select
End Sub

El archivo esta aqui:

http://https://mega.nz/#!B5VC3YIS!5i8St7wahARDE64WLJ0OqJyKsIqlA9XXi9gZF1X5sNI

Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5381
Enlace directo a este mensaje Enviado: 30/Noviembre/2018 a las 17:11
«... Precio máximo más bajo, precio mínimo más alto...»

Esos conceptos como tales y sin más detalles... ¡No existen!

Creo que «... mis conocimientos de programación son muy limitados...» y querer resolver mediante programación, se contradice bastante.

Si expones una duda concreta, podemos intentar ayudarte en este foro de Excel, si quieres que te hagan el trabajo, debes exponerlo en este otro foro.


Aprendemos viendo respuestas de otros, también intentando resolver dudas (intenta ayudar cuando puedas/sepas).

Mi sitio_web con ejemplos Excel.
Arriba
a7024782 Ver desplegable
Nuevo
Nuevo


Unido: 29/Noviembre/2018
Localización: valencia
Estado: Sin conexión
Puntos: 3
Enlace directo a este mensaje Enviado: 30/Noviembre/2018 a las 17:40
Me disculpo,creo que me equivoque de foro. No estoy buscando ayuda gratis y me parece que el problema esta bien expuesto. No existen conceptos "como tales" eso es una generalización, una frase hecha. No hay contradicción en decir que no se tiene conocimientos cuando se aclara que se esta utilizando un aporte de otra persona. En todo caso, es su foro y sean felices con sus reglas. Gracias
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable