inge68
Messages postés42Date d'inscriptionlundi 25 février 2008StatutMembreDernière intervention24 février 2011
-
16 avril 2008 à 15:32
inge68
Messages postés42Date d'inscriptionlundi 25 février 2008StatutMembreDernière intervention24 février 2011
-
21 avril 2008 à 09:37
debutant en VBA, Je voudrais comparer une plage de cellule X avec une autre Y et prendre la valeurs de la cellule Z qui est juste apres Y où on a X=Yet la mettre dans la cellule W.
vous comprendrez mieux sur cette exemple
X W Y Z
1 A 5 E
2 B 9 I
3 C 6 F
1 A
4 D
2 B
8 H
3 C
10 J
7 G
donc pour cela j'ai fait le code suivant, qui marche sans souci
Sub analyse()
Dim i As Long, j As Long, k As Long
k = 2
i = 2
j = 2
For i = 2 To 8
Do While Cells(i, 1).Value <> Cells(j, 3).Value 'faire Tant que X est different de Y
For j = 2 To 15
If Cells(i, 1).Value = Cells(j, 3).Value Then 'si X=Y
Cells(k, 2).Value = Cells(j, 4).Value 'W=Z
Exit For
End If
Next j
Loop
k = k + 1
Next i
End Sub
Maintenant je voudrais appliquer cet exemple pour un vrai probleme, j'ai un tableau de valeur dans X qui correspond a une position d'une piece, un autre dans Y qui correspond a une position mesurée de la piece et dans Z sa force mesurée.
les valeurs qui sont dans les tableaux sont des reels à 2 chiffres apres la virgule, donc comment je pourrais comparer ses valeurs meme s'il sont pas egaux a 100%.
exemple:
en X j'ai -281.22
et en Y j'ai les valeurs
Y Z
<colgroup><col style=\"WIDTH: 60pt\" width=\"80\" /><col style=\"WIDTH: 76pt; mso-width-source: userset; mso-width-alt: 3693\" width=\"101\" /></colgroup>----
-282.3, 0.68, ----
-281.9, 0.68, ----
-281.5, 0.68, ----
-281.1, 0.68, ----
-280.7, 0.68
Ca veux dire que je doit prendre la valeur de Z (0.68) qui correspond a la valeur de Y(-281.1) qui s'approche le plus a ma valeur X(-281.22) et la mettre dans W.
si queqlqu'un peu m'aider ca serait super, j'y est passer bcp de temps.
Merci d'avance
inge68
Messages postés42Date d'inscriptionlundi 25 février 2008StatutMembreDernière intervention24 février 2011 17 avril 2008 à 10:16
j'ai essaié ta methode mais j'ai une erreur d'execution, impossible de lire la proprieté de Vlookup, cette fonction n'existe peut etre pas dans VBA, j'ai cherché sur l'aide et il l'a reconnait pas
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 17 avril 2008 à 15:59
...
Sub analyse()
Dim MaValeur As Variant
MaValeur = Application.WorksheetFunction.VLookup(range("A3"), range("C2:D2500"),2, False)
MsgBox MaValeur
End Sub
si la valeur recherhée en A3 n'a pas ete trouver tu auras une erreur 1004 donc faudra gerer ce cas si
tu ne veux avoir de probleme
Vous n’avez pas trouvé la réponse que vous recherchez ?
inge68
Messages postés42Date d'inscriptionlundi 25 février 2008StatutMembreDernière intervention24 février 2011 21 avril 2008 à 09:37
oui t'as raison ca marche quand il trouve la meme valeur, mais dans mon cas la valeur de A3 ne sera jamais egale a 100% une des valeurs de C2:D2500, est ce qu'il y a un moyen de recuperer la valeur la plus proche.
Merci bigfish_le vrai