Récupérer la plus grande valeur VBA

trustpol Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour à tous,

Je suis entrain de réaliser une base de données et dans la colonne A j'ai des animaux et en B leur poids
j'effectue des relevés toutes les semaines

et je voudrais créer dans une autre feuille une synthese en mettant le nom de l'animal et son poids le plus grand qui l'est eu et cela par une macro bien evidememt.

Le problème est que je n'arive pas a récupérer la valeur maximal de l'animal qui peu etre en plein milieu du tableau.

Pouvez vous m'aider?

Cordialement

3 réponses

trustpol Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
Personne n'a d'idée????

car j'ai réelement besoin de cette macro...
0
blux Messages postés 27104 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Salut,

pas besoin de macro, une simple formule suffit :

=MAX(feuille1!B:B)

en supposant que ta colonne B ne contiennet que des poids et pas d'autres données, sinon, il faut limiter avec B1:Bxx.
0
trustpol Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour

je croit que j'ai du mal expliqué mon besoin.

en fait dans ma première feuille j'effectue les relevés tous les mois mais pour une vingtaine d'animaux
ils sont sous cette forme

animal I date I poids

et donc je voudrai dans une deuxième feuiile faire les bilans de poids maxi de chaque animal

donc ta formule ne correspond pas du tout

Merci de ton aide

Cordialement
0
blux Messages postés 27104 Date d'inscription   Statut Modérateur Dernière intervention   3 359 > trustpol Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
Donc tous les animaux sont mélangés dans la même colonne ?

Une macro ne suffira pas, il faudra passer par du VBA, à moins de réorganiser les données pour pouvoir utiliser la fonction DMAX...
0
trustpol Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   > blux Messages postés 27104 Date d'inscription   Statut Modérateur Dernière intervention  
 
oui tous les animaux sont mélangés.

et les macros c'est du vba...

tout mon logiciel est en vba dc aucun souci mais sa ne me donnne pas la solution...

merci de ton aide
0
blux Messages postés 27104 Date d'inscription   Statut Modérateur Dernière intervention   3 359 > trustpol Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
et les macros c'est du vba...
Pas toujours...

mais sa ne me donnne pas la solution...
Ben voui, mais comme c'est le bordel, ça va pas être facile :

- créer un tableau en VBA dans lequel on stockera une ligne par animal
- parcourir la colonne A pour remplir ce tableau et en même temps, si l'animal existe déjà, mettre à jour le cas échéant son poids
- ensuite appeler cette fonction pour chaque animal et extraire son poids pour le mettre à jour...
0
Utilisateur anonyme
 
Bonjour,

La structure que je t'ai proposé est fonctionnel pour ce genre de traitement,
suffit de modifier les noms d'objets.

Option Explicit
'

Type typVehicule
        Nom As String
        LaDate As Date
        Kilom As Double
End Type
'

Dim LesVH() As typVehicule
'

Sub RechercheMaximum()

    Dim Boucle As Long, Limite As Long
    Dim Compteur As Long, UneDate As Date
    Dim Vehicule As String, Kilom As Long
    
    Limite = Range("A65536").End(xlUp).Row
    
    
    For Boucle = 1 To Limite
        ReDim Preserve LesVH(Boucle)
        Vehicule = Cells(Boucle, 1).Value
        UneDate = Cells(Boucle, 2).Value
        Kilom = Cells(Boucle, 3).Value
        For Compteur = 0 To (UBound(LesVH) - 1)
            If (Vehicule = LesVH(Compteur).Nom) Then
                If (LesVH(Compteur).Kilom < Kilom) Then
                    LesVH(Compteur).Kilom = Kilom
                    LesVH(Compteur).LaDate = UneDate
                End If
            Else
                LesVH(Compteur).Nom = Vehicule
                LesVH(Compteur).LaDate = UneDate
                LesVH(Compteur).Kilom = Kilom
            End If
        Next Compteur
    Next Boucle
    
    Worksheets.Add
    ActiveSheet.Name = "Cumulatif"
    For Boucle = 1 To UBound(LesVH)
        Cells(Boucle, 1).Value = LesVH(Boucle - 1).Nom
        Cells(Boucle, 2).Value = LesVH(Boucle - 1).LaDate
        Cells(Boucle, 3).Value = LesVH(Boucle - 1).Kilom
    Next bouble

End Sub
'

Lupin
0