valeur approchée dans un tableau

loic3869

XLDnaute Occasionnel
Bonjour,

Je recherche dans une colonne la valeur exacte ou approchée de mon résultat si il n'y est pas présent. Et j'ai deux conditions : il faut que ce résultat soit égal à un nombre et inférieur au maximum.


Private Sub CommandButton3_Click()
Dim k As Long
Dim n1 As Integer
Dim plagerecherche As Range


Set plagerecherche = Range("O2:O10000")
n1 = Application.WorksheetFunction.Match(plagerecherche, Worksheets("Feuil1").Cells(31, 4), 0)
k = 0
For k = 1 To 10000

If (Worksheets("Feuil1").Cells(k, 14).Value = Worksheets("Feuil1").Cells(31, 4).Value) And (Worksheets("Feuil1").Cells(k, 14).Value) < Worksheets("Feuil1").Cells(24, 3).Value Then
Worksheets("Feuil1").Cells(31, 7).Value = Worksheets("Feuil1").Cells(k, 17).Value
Else
k = k + 1

End If

Next
End Sub
Cells(31, 4) est le résultat à avoir.
Cells(k, 14) est la case ou on est.
Cells(24, 3) est le maximum.
Cells(31, 7) est la cellule ou l'on veut qu'on affiche le résultat.

Ce programme ne fonctionne pas un message apparait "Impossible de lire la propriété Match de la classe WorksheetFunction".

Pourriez-vous m'aidez ?
Merci d'avance.
 

Gael

XLDnaute Barbatruc
Re : valeur approchée dans un tableau

Bonjour Loic,

En fait tu as inversé 2 paramètres, il faut écrire:

Code:
n1 = Application.WorksheetFunction.Match(Cells(31, 4).Value, plagerecherche, 0)

Par ailleurs les "Worksheets("Feuil1")" ne sont pas utiles à partir du moment où tu travailles sur la feuille active.

Je ne comprends pas non plus l'utilité de la boucle sui fait le même travail que la fonction Match.

@+

Gael
 

loic3869

XLDnaute Occasionnel
Re : valeur approchée dans un tableau

Merci BOISGONTIER.Votre fonction marche très bien et m'a bien aidé mais le résultat ne s’affiche pas dans la case.

Voici un morceau de mon programme :

Set plagerecherche = Worksheets("Feuil1").Range("O2:O10000")

Rang = Application.Index([N2:N4003], Application.Match([D31], [N2:N4003], 1))

k = 0
For k = 1 To 10000

If (Worksheets("Feuil1").Cells(k, 14).Value = Rang) And (Worksheets("Feuil1").Cells(k, 14).Value) < Worksheets("Feuil1").Cells(24, 3).Value Then
Worksheets("Feuil1").Cells(k, 15).Value = Worksheets("Feuil1").Cells(31, 7).Value
Else
k = k + 1

End If

Next

D’ou viendrait l’erreur ?

Merci d’avance.

Loic
 

mutzik

XLDnaute Barbatruc
Re : valeur approchée dans un tableau

re,
l'erreur est la suivante
si par exemple ton k = 1 lors de ta premiere boucle, si le test n'est pas conclunant, tu dis k=k+1 soit k=2
ensuite tu dis next, et c'est excel qui incrémente la valeur de k pour refaire une autre boucle (pour k =3)
mais la boucle pour k=2 n'aura jamais été faite, donc des valeurs de cellules qui n'auront jamais été testées
 

loic3869

XLDnaute Occasionnel
Re : valeur approchée dans un tableau

Merci mutzik. L'erreur venait bien du k.
Maintenat j'ai l'adresse d'une case qui est contenue dans une autre case sous ce type de format "$N$3916" contenue dans C41.
J'ai testé cette ligne qui ne marche pas :
Rang = Application.Index([C41.Value:N4003], Application.Match([D30], [N2:N4003], 1))

D'ou peut venir l'erreur ?

Merci.
 

loic3869

XLDnaute Occasionnel
Re : valeur approchée dans un tableau

Bonsoir

Pouvez-vous m'aider ? Je sais pas pourquoi mais les résultats ne s'affichent plus dans les cases. Je vous ai envoyé un MP avec l'adresse du site ou trouver mon fichier.

Merci.
 

Discussions similaires

Statistiques des forums

Discussions
313 919
Messages
2 103 571
Membres
108 728
dernier inscrit
LaureMichel