écriture d'une fonction perso.

yaka

XLDnaute Occasionnel
Bonjour

J'ai besoin d'écrire des fonctions personnalisées qui pour la plupart font référence à des plages de cellules clairement nommées via des formules INDEX et EQUIV.

Dans le fichier ci-joint je vous ai mis l'exemple type... comment dois-je écrire ma fonction select()? (cf-fichier)

Par avance merci
[file name=select.zip size=5094]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/select.zip[/file]
 

Pièces jointes

  • select.zip
    5 KB · Affichages: 11

yaka

XLDnaute Occasionnel
Merci MAIS....

étant presque débutant en la matiére je comprends difficilement ton code qui me donne # VALEUR

j'ai essayé de l'aménager pour qu'il colle à mon exemple ce qui me donne :

Public Function select2(base As Range, liste_choix As Range, liste_bases As Range)
Dim lig As Integer, col As Integer

lig = base.Columns(1).Find(liste_choix).Row
col = base.Rows(1).Find(liste_bases).Column
select2 = Cells(lig, col)
End Function

sachant que j'ai redéfinie la zone BASE = B7:D13

...j'ai toujours un message #VALEUR... sans doute n'y comprends-je rien...
:eek:



... petit détail complémentaire = je suis en EXCEL 2000


donc je renouvelle mon appel.
 

Hervé

XLDnaute Barbatruc
re

en pièce jointe, ton fichier incluant la fonction (cellule rouge).

une fonction personnalisé s'utilise comme toute autre fonction d'excel.

teste ce fichier.

salut [file name=select_20060509130719.zip size=7761]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/select_20060509130719.zip[/file]
 

Pièces jointes

  • select_20060509130719.zip
    7.6 KB · Affichages: 9

Hervé

XLDnaute Barbatruc
bonjour yaka

désolé pour la réponse tardive, mais je suis plus que débordé en ce moment.

pour ton souci, normalement ta version d'excel ne devrait pas poser de problème.

teste ce code et dans le fichier que je t'ai renvoyé et dis moi les valeurs retournées :

Public Function select2(plage As Range, colonne As Range, ligne As Range)
Dim lig As Integer, col As Integer

lig = plage.Columns(1).Find(colonne).Row
col = plage.Rows(1).Find(ligne).Column
msgbox 'lig= ' & lig
msgbox 'col= ' & col
select2 = Cells(lig, col)
End Function

salut
 

Statistiques des forums

Discussions
312 215
Messages
2 086 333
Membres
103 188
dernier inscrit
evebar