VBA Trouver valeur dans un tableau selon conditions

IDoGeekette Messages postés 7 Date d'inscription mardi 31 août 2010 Statut Membre Dernière intervention 13 octobre 2010 - 12 oct. 2010 à 12:11
IDoGeekette Messages postés 7 Date d'inscription mardi 31 août 2010 Statut Membre Dernière intervention 13 octobre 2010 - 13 oct. 2010 à 11:50
Bonjour à tous !

Je fais appel à vous car je suis bloqué !

J'ai un tableau excel dont voici un petit exemple de la structure :

Xmin Xmax Ymin Ymax T°
3400 3450 22000 22050 18.6
... ... ... ...

Depuis un formulaire ACCESS, je souhaite obtenir la température en fonction des coordonnées X et Y d'un point géoréférencé par le biais d'un bouton.

J'ai donc deux zone de texte appelé CoordX et Coordy et ma feuille excel s'intitule Réfthermique.xls. Le chemin est stocké dans une zone de texte nommée Iprxls. Je souhaite obtenir ma réponse dans Resultat.value


Voici mon script :
Private Sub Commande68_Click()
'Déclaration des variables
Dim X As String
Dim Y As String
Dim Test As String
Dim IPR As String

Dim xl_app As Excel.Application
Dim objexcel As Object, xl_feuille As Object
With xl_app

'Définition des variables
X = CoordX.Value
Y = CoordY.Value
IPR = Iprxls.Value

'Activation de la feuille excel
Set AppExc = CreateObject("Excel.Application")
AppExc.Visible = False
Set objexcel = AppExc.Workbooks.Add(IPR)
Set xl_feuille = objexcel.Sheets("Données")

'recherche dans le tableau
Test = xl_feuille.Evaluate("INDEX(F2:F63346,match(1,(A2:A63346 > & X &)*(B2:C63346 < & X &)*(C2:C63346 < & Y & )*(D2:D63346< & Y & ),0))")
End With
resultat.Value = Test
End Sub


L'erreur qui s'affiche "Incompatibilité de type" L'erreur se produit dans la partie 'recherche dans le tableau

A quoi cela est du ? Je n'ai pas déclarer clairement ma plage de données ? Le langage utilisé ( je me suis inspiré de vba Excel) n'est ps le bon ? Bref je suis perdu...

Merci d'avance !

1 réponse

IDoGeekette Messages postés 7 Date d'inscription mardi 31 août 2010 Statut Membre Dernière intervention 13 octobre 2010
13 oct. 2010 à 11:50
Re,

Je n'aurais pas du mettre tout mon code d'un seul coup...

Peut être pouvez-vous juste me donner une piste de reflexion...

Réexplique de façon plus clair :
Je possède un X et un Y. Je dois, à travers le tableau ci-dessous, trouver la température correspondante. Le tout à partir d'un formulaire ACCESS, pour remplir un champs de ce formulaire.

Xmin Xmax Ymin Ymax T°
3400 3450 22000 22050 18.6
3450 3500 22000 22050 17.5
3450 3500 22050 22100 17.8
... ... ... ... ...

Par exemple, si X 3422 et Y 22048
Cela doit me référer à la premère ligne de mon tableau. Et donc me donner la valeur de 18.6.

Si je ne suis pas clair, je peux réexposer mon problème. Je suis prêt à lire des tutoriaux, même si j'ai déja effectué pas mal de recherches.


Merci d'avance
0
Rejoignez-nous