Bonsoir,

Dans un tableau j'ai des valeurs qui sont toutes des valeurs décimales, parfois certaines sont de la forme 4.5E-05 quand les valeurs sont très petites.

Avec la fonction .Find, je souhaite aller chercher le numéro de ligne et colonne de la valeur la plus petite d'une plage de valeur. J'ai donc repris certains codes trouvés sur la toile et adapté pour mes besoins, ce qui donne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
Sub recherche()
 
Dim celluletrouvee As Range
Dim ligne As Integer
Dim col As Integer
Dim PlusPetiteValeur As Single
 
Sheets("O2").Select
 
PlusPetiteValeur = Application.WorksheetFunction.Min(Range("B6:BK8"))
 
Set celluletrouvee = Range("B6:BK8").Find(PlusPetiteValeur)
 
If celluletrouvee Is Nothing Then
MsgBox ("pas trouvé")
 
Else
ligne = celluletrouvee.Row
col = celluletrouvee.Column
MsgBox ("trouvé : ligne = " & ligne & " , colonne = " & col)
End If
 
End Sub
Le problème, c'est que j'ai toujours un message "pas trouvé" qui apparaît. Je pensais que ça vient du fait que mes données dans mon tableau sont au format numérique, parfois avec des puissances de 10 ( E-05...) et que la fonction Find va prendre la valeur dans la variable PlusPetiteValeur et la comparer comme une String avec la valeur numérique exacte.

J'ai donc modifié mon tableau en arrondissant toutes mes données avec ROUND afin de ne plus avoir de puissances de 10, mais c'est toujours le même problème...

Quelqu'un aurait-il une idée?

Merci!