Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Trouver une valeur égal ou directement supérieure

Nanir

XLDnaute Occasionnel
Bonjour,

Je dois trouver une valeur égale ou directement supérieur par rapport à une liste de valeur...
Explications sur le fichier joint...
Merci pour votre aide...
 

Pièces jointes

  • égale ou équiv.xls
    20 KB · Affichages: 395

Tibo

XLDnaute Barbatruc
Re : Trouver une valeur égal ou directement supérieure

Bonjour,

Un essai avec :

Code:
=INDEX(D1:D14;EQUIV(A19;D1:D14)+1-NB.SI(D1:D14;A19))

un autre avec une formule matricielle :

Code:
=INDEX(D1:D14;EQUIV(VRAI;D1:D14>=A19;0))

Formule matricielle à valider par CTRL + MAJ + ENTREE

@+
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Trouver une valeur égal ou directement supérieure

Bonjour Nani, bonjour le forum,

Je sais pas faire avec des formules, je te propose la macro ci-dessous :
Code:
Sub Macro1()
Dim pl As Range 'déclare la variable pl (PLage)
Dim r As Range 'déclare la variable r (Recherche)
Dim em As Integer 'déclare la variable em (Ecart Minimum)
Dim val As Integer 'déclare la variable val (VALeur)
 
Set pl = Range("D1:D14") 'définit la plage pl
Set r = pl.Find(Range("A19"), , xlValues, xlWhole) 'définit la variable r
 
If Not r Is Nothing Then 'condition initiale : si il existe au moins une occurrence de r dans pl
 
    Range("D19") = r 'place l'occurrence trouvée en D19
 
Else 'sinon
 
    em = Application.WorksheetFunction.Max(pl) 'définit la variable em (le chiffre le plus haut de pl)
    For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
        If cel.Value <> "" Then 'condition 1 : si la cellule n'est pas vide
            'condition 2 : si la valeur absolue de la différence A19 et la cellule est inférieure à l'écart minimum
            If Abs(Range("A19").Value - cel.Value) < em Then
                em = Abs(Range("A19").Value - cel.Value) 'redéfinit l'écart minimum
                val = cel.Value 'définit la variable val
            End If 'fin de la condition 2
        End If 'fin de la condition 1
    Next cel 'prochaine cellule cel de la plage pl
    Range("D19") = val 'place la valeur la plus proche en D19
 
End If 'fin de la condition initiale
 
End Sub

Édition :

Salut Tibo on s'est croisé... Heu y a pas photo vive les formules !!!! (un jour, qui sait, il faudra bien que je m'y mette bon sang)...
 

Pièces jointes

  • Nani_v01.xls
    47.5 KB · Affichages: 170
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…