![]() |
|
Forum
|
|
|
#1 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: avril 2008
Messages: 107
|
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. |
|
|
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Accro
Date d'inscription: mai 2005
Localisation: Inzinzac-Lochrist
Version Excel : Excel 2000 (PC)
Messages: 1 592
|
Bonjour Loic,
En fait tu as inversé 2 paramètres, il faut écrire: Code:
n1 = Application.WorksheetFunction.Match(Cells(31, 4).Value, plagerecherche, 0) Je ne comprends pas non plus l'utilité de la boucle sui fait le même travail que la fonction Match. @+ Gael |
|
|
|
|
|
#6 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: avril 2008
Messages: 107
|
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 |
|
|
|
|
|
#7 (permalink) |
|
XLDnaute Accro
Date d'inscription: février 2005
Localisation: Lixing les Rouhling
Version Excel : Excel 2003 (PC)
Messages: 1 439
|
Loic,
est-ce la suite du précédent post ou tu demandais l'intersection à -10% et +10% Je t'ai répondu mais pas eu de retour de ta part ?
__________________
@+ ertrand
|
|
|
|
|
|
#8 (permalink) |
|
XLDnaute Accro
Date d'inscription: février 2005
Localisation: Lixing les Rouhling
Version Excel : Excel 2003 (PC)
Messages: 1 439
|
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
__________________
@+ ertrand
|
|
|
|
|
|
#9 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: avril 2008
Messages: 107
|
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. |
|
|
|
|
|
#10 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: avril 2008
Messages: 107
|
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. |
|
|
|
|
|
#12 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: avril 2008
Messages: 107
|
Bonjour,
Je ne sais pas pourquoi mais le résultat ne s'affiche pas toujours pour la case t50%+ ? Même si la courbe passe par le t50%+. http://cjoint.com/?fhjpYklkU5 |
|
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|
Discussions similaires
|
||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| Recherche Valeur Dans Autre Tableau Avec Nom Variable Dans Cellule | JLL54 | Forum spécial EXCEL 2007 | 1 | 23/02/2008 07h03 |
| Recherche Valeur Dans Autre Tableau Avec Nom Variable Dans Cellule | JLL54 | Forum Excel | 2 | 22/02/2008 16h10 |
| Recherche d'une valeur approchée | j-y | Forum Excel | 4 | 05/05/2006 10h02 |
| Recherche d'une valeur approchée | j-y | Forum Excel | 4 | 05/05/2006 09h46 |
| recherche d'une valeur approchée | rinspeed | Forum Excel | 2 | 23/07/2005 09h13 |