Recherche coordonnee cellule d'un tableau avec deux mots [Résolu]

Signaler
Messages postés
5
Date d'inscription
jeudi 5 juillet 2007
Statut
Membre
Dernière intervention
6 juillet 2007
-
Messages postés
443
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
1 mars 2011
-
Bonjour à tous,
et merci d'avance à celui qui prendra le temps de me répondre. Je suis débutant en VBA, mais j'en ai besoin pour finir de faire un grille sur excel.
J'ai besoin d'une fonction, que j'entre dans une cellule d'une feuille, et qui en entré possède 3 arguments. Cette fonction va chercher dans une autre feuille de mon classeur (Durée_vie_lampes) la valeur d'une cellule d'un tableau dont le tite de la colonne est lampe et le titre de la ligne est ballastCycle. Elle doit me sortir une chaine de caractere. Et la ba rien...
Voici mon code... si quelqu'un identifie les problèmes... je deviens fou la...

"Function RechercheDureeVie(lampe As String, ballast As String, cycle As String) As String
Dim numColonne As Integer
Dim numLigne As Integer
Dim ballastCycle As String
'concatener ballast et cycle

ballastCycle = ballast & "_" & cycle

Worksheets("Durée_vie_lampes.xls").UsedRange.Select
numColonne = Selection.Find(lampe, ActiveCell, xlValues, xlPart, xlByRows, xlNext, False).Column
numLigne = Selection.Find(ballastCycle, ActiveCell, xlValues, xlPart, xlByRows, xlNext, False).Row

RechercheDureeVie = ActiveSheet.Range(numLigne, numColonne).Value

End Function"

Merci d'avance
titi

8 réponses

Messages postés
443
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
1 mars 2011
2
Remplace Function par Sub
Pour passer les paramètres, il te suffit d'affecter à tes variables les données contenues dans les cellules concernées puis de définir la recherche soit en utilisant Find ou en parcourant tes données dans une boucle jusqu'à ce qu'elle soit trouvée
Dans les 2 cas il ne faut pas oublier de gérer l'erreur dans le cas ou la donnée n'a pas été trouvée

Bon courage, bonne journée et Bon week-end
JML
 Partageons notre savoir et nos acquis
Messages postés
443
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
1 mars 2011
2
JML



 Partageons notre savoir et nos acquis
Messages postés
443
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
1 mars 2011
2
Avant d'aller plus loin
Worksheet est une feuille donc pas d'extension
<strike>Worksheets("Durée_vie_lampes.xls")
</strike>Worksheets("Durée_vie_lampes").
JML
 Partageons notre savoir et nos acquis
Messages postés
5
Date d'inscription
jeudi 5 juillet 2007
Statut
Membre
Dernière intervention
6 juillet 2007

Merci JML. Mais apriori ca ne change pas l'erreur. Quand je rentre ma formule (à l'aide de formule>personalisé) et que ensuite je click dans les cellules ou se trouve mes paramètres, j'obtiens l'erreur #VALEUR. Je comprends vraiment pas pourquoi. Le seule doute c'est que: est ce que quand on ecrit dans une cellule A1 (chaine de caractères), par exemple, et qu'on fait fct(A1) est ce que la fonction voit A1 comme une chaine de caractère.

titi
Messages postés
443
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
1 mars 2011
2
Copie la partie de la feuille ou se trouve les en-têtes lignes et colonnes et aussi les données ... pour meilleure compréhension

JML
 Partageons notre savoir et nos acquis
Messages postés
5
Date d'inscription
jeudi 5 juillet 2007
Statut
Membre
Dernière intervention
6 juillet 2007

Voici une parti du tableau de la feuille "Durée_vie_lampe"
Les en-têtes sont (type ballast, type cycle par ballast, master...,N/A) et après ca continue quand j'aurais rentré les caractéristiques...
<col style=\"width: 60pt;\" width=\"80\" /><col style=\"width: 74pt;\" width=\"98\" /><col style=\"width: 135pt;\" span=\"2\" width=\"180\" />----
, , 1, 2, ----
Type ballast, Type cycle par ballast, MASTER Xtra 58W/840, N/A, ----
Durée de vie économique, Durée de vie
économique, ----
BTA, BTA_continu, 46000, N/A, ----
BTA_12h, 40000, N/A, ----
BTA_3h, 24000, N/A, ----
HFP , HFP_continu, 56000, N/A, ----
HFP_12h, 54000, N/A, ----
HFP_3H, 47000, N/A, ----
HFR, HFR_continu, 56000, N/A, ----
HFR_12h, 54000, N/A, ----
HFR_3H, 47000, N/A, ----
HFB, HFB_continu, 54000, N/A, ----
HFB_12h, 38000, N/A, ----
HFB_3H, 19000, N/A, ----
E-Kyoto, E-Kyoto_continu, 54000, N/A, ----
E-Kyoto_12h, 38000, N/A, ----
E-Kyoto_3h, 19000, N/A

Pour ce qui est des données de la feuille ou je tape la fonction c ets cellules normales ou j'ai copier coller le nom des choses.

J'ai rentré ma fonction dans un module de VBA, c'est peut être ca?
Messages postés
443
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
1 mars 2011
2
En fait il y a quelque chose qui me gène depuis le début
Tu ne peux pas avoir une fonction qui fait des sélections de feuilkle ; des recherches
Fait un Sub que tu appelleras par un bouton d"exécution il me semble que ce sera plus efficace
Bonne soirée
JML
 Partageons notre savoir et nos acquis
Messages postés
5
Date d'inscription
jeudi 5 juillet 2007
Statut
Membre
Dernière intervention
6 juillet 2007

Ok merci beaucoup.Mais j'ai un problème de connaissance sur la chose. Comment je fais pour que la transformer en Sub. Car je sais ce qu'est une sub, je sais lier cela à button (commandbutton) mais comment je lui dis où sont les arguments? Je suis obligé de les mettre à une place bien définie dans ma feuille excel, puis de prendre leur valeur dans la procedure?
Désolé de poser autant de questions

titi