Récupérer la plus grande valeur VBA

Fermé
trustpol Messages postés 36 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 25 avril 2008 - 17 avril 2008 à 11:08
 Utilisateur anonyme - 18 avril 2008 à 15:19
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 mardi 1 avril 2008 Statut Membre Dernière intervention 25 avril 2008
18 avril 2008 à 10:01
Personne n'a d'idée????

car j'ai réelement besoin de cette macro...
0
blux Messages postés 26490 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 novembre 2024 3 316
18 avril 2008 à 10:08
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 mardi 1 avril 2008 Statut Membre Dernière intervention 25 avril 2008
18 avril 2008 à 10:40
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 26490 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 novembre 2024 3 316 > trustpol Messages postés 36 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 25 avril 2008
18 avril 2008 à 10:56
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 mardi 1 avril 2008 Statut Membre Dernière intervention 25 avril 2008 > blux Messages postés 26490 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 novembre 2024
18 avril 2008 à 11:04
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 26490 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 novembre 2024 3 316 > trustpol Messages postés 36 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 25 avril 2008
18 avril 2008 à 11:11
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
18 avril 2008 à 15:19
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