VBA pour excel - recherche valeur

Résolu/Fermé
judoka33 Messages postés 13 Date d'inscription mercredi 8 août 2012 Statut Membre Dernière intervention 13 décembre 2012 - 9 août 2012 à 12:16
judoka33 Messages postés 13 Date d'inscription mercredi 8 août 2012 Statut Membre Dernière intervention 13 décembre 2012 - 9 août 2012 à 21:21
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,

9 réponses

Morgothal Messages postés 1236 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 183
9 août 2012 à 14:12
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 jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 183
9 août 2012 à 14:21
Et si c'est bien ça, ce classeur peut t'aider sans doutes...
0
judoka33 Messages postés 13 Date d'inscription mercredi 8 août 2012 Statut Membre Dernière intervention 13 décembre 2012
9 août 2012 à 14:40
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 jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 183
9 août 2012 à 15:14
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 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
9 août 2012 à 15:01
bonjour à tous les deux

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

bonne suite
0
judoka33 Messages postés 13 Date d'inscription mercredi 8 août 2012 Statut Membre Dernière intervention 13 décembre 2012
9 août 2012 à 16:14
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 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
9 août 2012 à 17:10
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 mercredi 8 août 2012 Statut Membre Dernière intervention 13 décembre 2012
9 août 2012 à 17:39
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 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
9 août 2012 à 17:53
Q2.1 donc c'est la colonne A?
0
judoka33 Messages postés 13 Date d'inscription mercredi 8 août 2012 Statut Membre Dernière intervention 13 décembre 2012
9 août 2012 à 18:04
Oui
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
9 août 2012 à 19:04
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 mercredi 8 août 2012 Statut Membre Dernière intervention 13 décembre 2012
9 août 2012 à 21:21
Je test demain
Merci pour le coup de main.
0