Recuperar el valor más grande VBA

trustpol Mensajes publicados 36 Estado Miembro -  
 Usuario anónimo -
Hola a todos,

Estoy realizando una base de datos y en la columna A tengo animales y en B su peso
realizo registros todas las semanas

y me gustaría crear en otra hoja una síntesis poniendo el nombre del animal y su peso más alto que ha tenido y esto por supuesto con una macro.

El problema es que no puedo recuperar el valor máximo del animal que puede estar en medio de la tabla.

¿Pueden ayudarme?

Atentamente
Configuración: Windows 2003 Internet Explorer 7.0

3 respuestas

  1. trustpol Mensajes publicados 36 Estado Miembro
     
    ¿Nadie tiene idea????

    porque realmente necesito esta macro...
    0
  2. blux Mensajes publicados 2046 Fecha de registro   Estado Moderador Última intervención   3 455
     
    Hola,

    no es necesario usar una macro, una simple fórmula es suficiente:

    =MAX(feuille1!B:B)

    suponiendo que tu columna B solo contenga pesos y no otros datos; de lo contrario, hay que limitar a B1:Bxx.

    --

    ¡Hasta luego!
     "Los tontos se atreven a todo. Es incluso así como los reconocemos"
    0
    1. trustpol Mensajes publicados 36 Estado Miembro
       
      Hola

      Creo que he explicado mal mi necesidad.

      De hecho, en mi primera hoja realizo las lecturas todos los meses pero para una veintena de animales
      Están de esta forma

      animal I fecha I peso

      Por lo tanto, me gustaría en una segunda hoja hacer los balances de peso máximo de cada animal

      Así que tu fórmula no se corresponde en absoluto

      Gracias por tu ayuda

      Atentamente
      0
      1. blux Mensajes publicados 2046 Fecha de registro   Estado Moderador Última intervención   3 455 > trustpol Mensajes publicados 36 Estado Miembro
         
        ¿Entonces todos los animales están mezclados en la misma columna?

        Una macro no será suficiente, será necesario utilizar VBA, a menos que reorganices los datos para poder usar la función DMAX...

        --

        ¡Hasta luego, Blux!
         "Los tontos se atreven a todo. Es incluso así como los reconocemos"
        0
      2. trustpol Mensajes publicados 36 Estado Miembro > blux Mensajes publicados 2046 Fecha de registro   Estado Moderador Última intervención  
         
        sí, todos los animales están mezclados.

        y las macros son en vba...

        todo mi software está en vba, así que no hay problema, pero eso no me da la solución...

        gracias por tu ayuda
        0
      3. blux Mensajes publicados 2046 Fecha de registro   Estado Moderador Última intervención   3 455 > trustpol Mensajes publicados 36 Estado Miembro
         
        y las macros son de VBA...
        No siempre...

        pero eso no me da la solución...
        Bueno, sí, pero como está el lío, no va a ser fácil:

        - crear una tabla en VBA en la que almacenaremos una fila por animal
        - recorrer la columna A para llenar esta tabla y al mismo tiempo, si el animal ya existe, actualizar su peso si es necesario
        - luego llamar a esta función para cada animal y extraer su peso para actualizarlo...

        --

        ¡A+ Blux
         "Los tontos, se atreven a todo. Es incluso por eso que los reconocemos"
        0
  3. Usuario anónimo
     
    Hola,

    La estructura que te propuse es funcional para este tipo de tratamiento,
    solo hay que modificar los nombres de los objetos.

     Option Explicit ' Type typVehicule Nombre As String LaFecha As Date Kilometros As Double End Type ' Dim LosVH() As typVehicule ' Sub BusquedaMaxima() Dim Bucle As Long, Limite As Long Dim Contador As Long, UnaFecha As Date Dim Vehiculo As String, Kilometros As Long Limite = Range("A65536").End(xlUp).Row For Bucle = 1 To Limite ReDim Preserve LosVH(Bucle) Vehiculo = Cells(Bucle, 1).Value UnaFecha = Cells(Bucle, 2).Value Kilometros = Cells(Bucle, 3).Value For Contador = 0 To (UBound(LosVH) - 1) If (Vehiculo = LosVH(Contador).Nombre) Then If (LosVH(Contador).Kilometros < Kilometros) Then LosVH(Contador).Kilometros = Kilometros LosVH(Contador).LaFecha = UnaFecha End If Else LosVH(Contador).Nombre = Vehiculo LosVH(Contador).LaFecha = UnaFecha LosVH(Contador).Kilometros = Kilometros End If Next Contador Next Bucle Worksheets.Add ActiveSheet.Name = "Acumulativo" For Bucle = 1 To UBound(LosVH) Cells(Bucle, 1).Value = LosVH(Bucle - 1).Nombre Cells(Bucle, 2).Value = LosVH(Bucle - 1).LaFecha Cells(Bucle, 3).Value = LosVH(Bucle - 1).Kilometros Next bucle End Sub ' 

    Lupin
    0