Rechercher une valeurs supérieure VBA/Excel

Bonjour,

J'ai déjà fais quelques posts pour essayer de m'aider mais j'avoue galérer un peu donc j'implore votre aide ahah :)

J'ai un fichier excel ou dedans je récupère des diamètres de vis pour un appareil et une longueur idéale pour cette vis. Ex : sur l'onglet "01 engine-Engine support", j'arrive à déterminer un diamètre de vis M20 en C31 pour une longueur idéale de 98 en D31.

Une fois ces deux valeurs obtenues je voudrai allez dans l'onglet "HSV Data" pour trouver la vis que se rapproche le plus au supérieur et ainsi renvoyer son code, dans mon cas j'aimerai renvoyer donc la valeur de la case M22.

Je met le fichier en pièce jointe et je suis ouvert à toute aide, que ce soit en VBA ou simplement en Excel.

Merci d'avance, j'espère que vous pourrez m'aider :)

7boms-b.xlsm (234.80 Ko)

Bonjour

Teste cette formule

=INDEX('HSV Data'!A1:O25;EQUIV(D31;'HSV Data'!C3:C25;1)+3;EQUIV(C31;'HSV Data'!C3:O3;0)+2)

T'es le boss M12 ! Tu peux m'expliquer ce que fait exactement la formule si ça te dérange pas ? Pour que je puisse bien la comprendre et la réutiliser :)

Re

=INDEX('HSV Data'!A1:O25; --> la plage de recherche

EQUIV(D31;'HSV Data'!C3:C25;1)+3; --> cherche la ligne la plus proche

EQUIV(C31;'HSV Data'!C3:O3;0)+2) --> cherche la colonne exacte

Je vais essayer de regarder un peu plus en profondeur pcq j'ai l'impression que elle marche pas selon toutes les valeurs cette formule.

Avec 40 par exemple elle me retourne zero.

Tu penses que ca serait possible en VBA pour avoir quelque chose qui marche à tous les coups ?

Re,

Normal, tu as des cellules fusionnées en colonne C

ôte les fusions et place la valeur identique sur l'autre cellule

Bonjour,

Tu peux partir sur cette base et rajouter les conditions que tu souhaites.

Sub equiv()

With Sheets("HSV Data")

    For i = 4 To 15
        If .Cells(3, i) = Sheets("01 Engine-Engine support").Cells(31, 3) Then Exit For
    Next i
    For j = 4 To 25
        If .Cells(j, 3) > Sheets("01 Engine-Engine support").Cells(31, 4) Then Exit For
    Next j
End With

MsgBox Cells(j, i).Value

End Sub

Pour aller plus loin :

https://www.wallstreetmojo.com/vba-index-match/

Rechercher des sujets similaires à "rechercher valeurs superieure vba"