VBA pour excel - recherche valeur

Résolu
judoka33 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
judoka33 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un gros pb avec vba, 5 ans sans utilisation.

Je simplifie le pb car cela n'apporte rien de plus.

Feuille 1
A1 = 20 (par exemple) 'correspond à un diametre d'un tube
A2 = 5.25 (par exemple) 'correspond à une epaisseur de calcul
A3 = (valeur à trouver) ' correspond à l'epaisseur mini standard >A2
Feuille 2 - tableau suivant
----A---B----C----D---E
1--10--1.2--2.3--4.6--5.5
2--20--1.3--2.5--4.7--6.2
3--30--1.6--2.6--5.2--7.2
4--40--1.8--3.2--5.5--7.5

Colonne A : diametre d'un tube
Colonne B à E : epaisseur standard en fonction du diametre du tube

Dans mon cas A3 =6.2
Si je modifie dans la feuille 1 la valeur A1, A2 est recalculer et A3 doit modifié

Je souhaite utiliser la fonction suivante
Function ep_std_mini(DN As String, ep_calcul As String
à DN je lui renvoie A1 'pas de pb
à ep_calcul je lui renvoie A2 ' pas de pb

C'est la suite qui me pose problème

Cordialement,
A voir également:

9 réponses

Morgothal Messages postés 1236 Date d'inscription   Statut Membre Dernière intervention   183
 
Bonjour,
Est-ce un tableau à double entrée ? Je ne comprends pas le rôle de A2, à moins que la ligne 1 représente les en-têtes des colonnes du tableau ?
0
Morgothal Messages postés 1236 Date d'inscription   Statut Membre Dernière intervention   183
 
Et si c'est bien ça, ce classeur peut t'aider sans doutes...
0
judoka33 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Je choisi la valeur A1, A2 est un calcul mathematique. En A3 je recupere l'epaisseur la plus proche supérieur.

Pour un autre exemple SI A1 = 10 et le resultat A2 = 2.6 alors A3 = 4.6

Au depart je pensais le faire avec uniquement excel, mais j'ai trop de carractère. Mon tableau fait 30x30.
J'aivais debuté avec
= si (A2<recherchev(feuille2!A1;feuille2!A1:E4;2);recherchev(feuille2!A1;feuille2!A1:E4;2; si (A2<recherchev(feuille2!A1;feuille2!A1:E4;3);recherchev(feuille2!A1;feuille2!A1:E4;3); ........;si (A2<recherchev(feuille2!A1;feuille2!A1:E4;30);recherchev(feuille2!A1;feuille2!A1:E4;30);)
Mais ca bloque à 16.

J'espere que cela te permettera de me debloquer le pb.

Cordialement,

Laurent
0
Morgothal Messages postés 1236 Date d'inscription   Statut Membre Dernière intervention   183
 
J'ai corrigé selon tes indications, il prendra toujours la valeur la plus proche supérieure. Comme j'ai précisé, les deux For sont à adapter aux dimensions de ton tableau.
Le classeur c'est par ici.
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour à tous les deux

une autre solution
https://www.cjoint.com/?3Hjo5mDRv1O

bonne suite
0
judoka33 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Rebonjour,

Je comprend la maniere mais apres j'ai des problème pour l'adapter à mon pb.

Si vous avez 5 minutes,
feuille Nomenclature tube & raccord : W14 doit recherche la valeur la plus proche par rapport à V14 dans la feuille Sch <> Ep.

sinon demain est un autre jour, et j'aurais peut etre les idée claire.

Bonne soirée

https://www.cjoint.com/?BHjqlnsFiXu
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention  
 
quelques questions

1. feuille Sch <> Ep
les tableaux sont ils fixés ou susceptibles de s''allonger?
2. feuille Nomenclature tube et raccords - - plage D14:Dxx
2.1. c'est la valeur de DN colonne B de sch<> ep ou celle de la colonne C
2.2. la valeur entrée en Dxx est elle choisie obligatoirement dans la plage correspondante de la feuille sch > <> ep si c'est oui, on peut y affecter une liste déroulante de choix comme (dans mon exemple)
3. le résultat attendu en Wxx est il la valeur la plus proche ou la valeur immédiatement supérieure dans la table
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
judoka33 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Q1: en principe il restera fixe.
Q2.1: c'est la première colonne en " de 1/8" a36"
Q2.2: oui je peux avoir une liste déroulante mais pas nécessairement
Q3: c'est la valeur immédiatement supérieur

Merci,
Pour l'aide ça fait 3jours que je galère
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention  
 
Q2.1 donc c'est la colonne A?
0
judoka33 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Oui
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention  
 
je suis parti
- sur la colonne A
- du principe que ton tableau (feuille Sch <> Ep ) est fixe

la solution est assez laborieuse car dans la feuille Sch <> Ep
1. les valeurs de sch ne sont pas toutes numériques
2. les lignes sch ne sont pas triées
3. seule la liste_DN a été nommée pour pouvoir utiliser une liste de validation lors de la saisie de DN

la fonction est dans le module 1

https://www.cjoint.com/?3Hjs5uHYVn6

RQ. la fonction renvoie 0 si valeurs non trouvée + un message d'erreur que tu peux supprimer

à tester bien sûr

bonne suite
0
judoka33 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Je test demain
Merci pour le coup de main.
0