Rechercher les cinq dernières références

Résolu
kit24be -  
 kit24be -
Bonjour,

je désire rechercher les 5 dernières valeurs d'une référence dans une
liste qui compte plusieurs centaines de références différentes et en faire la moyenne.

les références sont en colonne B et les valeurs en colonne C

Merci d avance pour votre aide

2 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    proposition:
    Option Explicit
    Sub Cinq_dernieres()
    Dim Derlig As Long, Ref As String, Lig As Long, Nbre As Byte, Somme As Double
    
    Derlig = Columns("B").Find("*", , , , , xlPrevious).Row
    Ref = Range("choix")
    If Application.CountIf(Range("B2:B" & Derlig), Ref) < 5 Then GoTo inferieur
    
    Lig = Derlig + 1
    For Nbre = 1 To 5
         Lig = Range("B2:B" & Lig).Find(Ref, , , , , xlPrevious).Row
         Somme = Somme + Cells(Lig, "C")
         Lig = Lig - 1
    Next
    Range("moyenne") = Somme / 5
    
    Exit Sub
    inferieur:
    MsgBox "nombre de " & Ref & " inférieur à 5", vbCritical
    
    End Sub
    


    et la maquette de travail
    https://www.cjoint.com/?3IeijTCgV0h

    remarque: "plusieurs centaines" étant très subjectif, j'ai déclaré derlig et lig en long... :o)

    Michel
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      errata :o/
      remplacer
      Lig=derlig+1 par
      Lig=Derlig
      0
  2. kit24be
     
    Bonjour,

    un très grand merci pour votre réponse. Cela fonctionne super bien.
    Bonne journée
    0