Rechercher valeur proche et afficher nom lign & col correspondan
Badabimboum
Messages postés
1
Statut
Membre
-
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
Voici mon problème expliqué par un exemple :
J'ai un tableau Excel
D E F
A 1 2 3
B 4 5 6
C 7 8 9
Je voudrais que Excel me recherche dans ce tableau l'entier supérieur le plus proche d'une valeur calculée (exemple 5,8) et qu'il m'affiche le nom de la ligne correspondante (cad B) et la colonne correspondante (cad F).
Quel est la formule magique selon vous ?
Merci pour votre aide.
Voici mon problème expliqué par un exemple :
J'ai un tableau Excel
D E F
A 1 2 3
B 4 5 6
C 7 8 9
Je voudrais que Excel me recherche dans ce tableau l'entier supérieur le plus proche d'une valeur calculée (exemple 5,8) et qu'il m'affiche le nom de la ligne correspondante (cad B) et la colonne correspondante (cad F).
Quel est la formule magique selon vous ?
Merci pour votre aide.
A voir également:
- Rechercher valeur proche et afficher nom lign & col correspondan
- Rechercher ou entrer l'adresse - Guide
- Rechercher et remplacer word - Guide
- Faites afficher avec un fond coloré les cellules qui contiennent une valeur comprise entre 250 et 350. - Forum VB / VBA
- Mise en forme conditionnelle "compris entre" ✓ - Forum Excel
- Nom de l'adresse - Forum Réseaux sociaux
2 réponses
bonsoir,
Je peux peut-être t'aider sur un point.
La fonction: plafond(valeur calculée,précision) te donnera le nombre le plus proche figurant dans ton tableau.
dans ton exemple: nombreAchercher=plafond(nombreAarrondir;1)
Maintenant, il reste à trouver la formule qui te permet de trouver un nombre égal à celui qu'a renvoyé la fonction.
Je peux peut-être t'aider sur un point.
La fonction: plafond(valeur calculée,précision) te donnera le nombre le plus proche figurant dans ton tableau.
dans ton exemple: nombreAchercher=plafond(nombreAarrondir;1)
Maintenant, il reste à trouver la formule qui te permet de trouver un nombre égal à celui qu'a renvoyé la fonction.
Bonjour,
Proposition de fonction personnalisée en vba à mettre dans un module standard.
syntaxe : rechMat(valeur, matrice , typeRetour)
exemple : =rechMat($A8;$A$1:$D$4;1)
code :
fichier exemple : https://www.cjoint.com/?BJugHiXRnrH
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
Proposition de fonction personnalisée en vba à mettre dans un module standard.
syntaxe : rechMat(valeur, matrice , typeRetour)
exemple : =rechMat($A8;$A$1:$D$4;1)
code :
Function rechMat(valeur As Double, matrice As Range, typeRetour As Long) As Variant
' recherche dans 'matrice' le 1er nombre le plus proche supérieur ou égal à 'valeur'
' 'matrice' contient les titres des lignes et colonnes
' typRetour =1 : 1er nombre le plus proche supérieur ou égal à 'valeur'
' typRetour =2 : nom de la ligne
' typRetour =3 : nom de la colonne
'
Dim lig As Long, col As Long, delta As Double
Dim lig1 As Long, col1 As Long, delta1 As Double
Dim mat() As Variant
'
mat = matrice.Value
delta1 = 9 ^ 99
For lig = 2 To UBound(mat, 1)
For col = 2 To UBound(mat, 2)
delta = mat(lig, col) - valeur
If mat(lig, col) >= valeur And delta < delta1 Then
col1 = col: lig1 = lig
delta1 = delta
End If
Next col
Next lig
If lig1 = 0 Then
rechMat = CVErr(xlErrNA)
Else
Select Case typeRetour
Case 1
rechMat = mat(lig1, col1)
Case 2
rechMat = mat(lig1, 1)
Case 3
rechMat = mat(1, col1)
End Select
End If
End Function
fichier exemple : https://www.cjoint.com/?BJugHiXRnrH
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.