bonjour à tous,
C'est un collegue de boulot qui me pose la question suivante et je suis sec
sur le sujet , voilà ce qui me fait me tourner vers vous
un tableau de chiffres et je voudrais localiser la cellule qui contient la
valeur la plus proche de celle recherchée.
je voudrais si possible passer par une macro en utilisant par exemple le
principe des MSGbox .
si deux valeurs possibles comment faire également ? peut être préciser dans
la question (valeur "sup" ou valeur "inf" )
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daniel.C
Bonjour. Voici une méthode de bourrin. Il y a sans doute plus élégant. La plage est A1:B15 et la valeur cherchée en D1. Ne fonctionne que pour des valeurs numériques :
Sub test() Dim c As Range, Res As Double, Ecart As Double For Each c In Range("A1:B15") If Ecart = 0 Then Ecart = Abs(c - [D1]) ElseIf Abs(c - [D1]) < Ecart Then Ecart = Abs(c - [D1]) End If Next c For Each c In Range("A1:B15") If Ecart = Abs(c - [D1]) Then MsgBox c.Address End If Next c End Sub
Cordialement. Daniel "lematou" a écrit dans le message de news:
bonjour à tous, C'est un collegue de boulot qui me pose la question suivante et je suis sec sur le sujet , voilà ce qui me fait me tourner vers vous
un tableau de chiffres et je voudrais localiser la cellule qui contient la valeur la plus proche de celle recherchée. je voudrais si possible passer par une macro en utilisant par exemple le principe des MSGbox .
si deux valeurs possibles comment faire également ? peut être préciser dans la question (valeur "sup" ou valeur "inf" )
merci a tous et pardon pour le dérangement.
tres cordialement
Jack dit lematou
Bonjour.
Voici une méthode de bourrin. Il y a sans doute plus élégant. La plage est
A1:B15 et la valeur cherchée en D1. Ne fonctionne que pour des valeurs
numériques :
Sub test()
Dim c As Range, Res As Double, Ecart As Double
For Each c In Range("A1:B15")
If Ecart = 0 Then
Ecart = Abs(c - [D1])
ElseIf Abs(c - [D1]) < Ecart Then
Ecart = Abs(c - [D1])
End If
Next c
For Each c In Range("A1:B15")
If Ecart = Abs(c - [D1]) Then
MsgBox c.Address
End If
Next c
End Sub
Cordialement.
Daniel
"lematou" <lematou@discussions.microsoft.com> a écrit dans le message de
news: DDF7CFDA-B51C-4596-A9DF-6B358ED4A0E6@microsoft.com...
bonjour à tous,
C'est un collegue de boulot qui me pose la question suivante et je suis
sec
sur le sujet , voilà ce qui me fait me tourner vers vous
un tableau de chiffres et je voudrais localiser la cellule qui contient la
valeur la plus proche de celle recherchée.
je voudrais si possible passer par une macro en utilisant par exemple le
principe des MSGbox .
si deux valeurs possibles comment faire également ? peut être préciser
dans
la question (valeur "sup" ou valeur "inf" )
Bonjour. Voici une méthode de bourrin. Il y a sans doute plus élégant. La plage est A1:B15 et la valeur cherchée en D1. Ne fonctionne que pour des valeurs numériques :
Sub test() Dim c As Range, Res As Double, Ecart As Double For Each c In Range("A1:B15") If Ecart = 0 Then Ecart = Abs(c - [D1]) ElseIf Abs(c - [D1]) < Ecart Then Ecart = Abs(c - [D1]) End If Next c For Each c In Range("A1:B15") If Ecart = Abs(c - [D1]) Then MsgBox c.Address End If Next c End Sub
Cordialement. Daniel "lematou" a écrit dans le message de news:
bonjour à tous, C'est un collegue de boulot qui me pose la question suivante et je suis sec sur le sujet , voilà ce qui me fait me tourner vers vous
un tableau de chiffres et je voudrais localiser la cellule qui contient la valeur la plus proche de celle recherchée. je voudrais si possible passer par une macro en utilisant par exemple le principe des MSGbox .
si deux valeurs possibles comment faire également ? peut être préciser dans la question (valeur "sup" ou valeur "inf" )