Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel


Réponse
 
LinkBack Outils de la discussion
Vieux 07/04/2008, 20h23   #1 (permalink)
XLDnaute Junior
 
Date d'inscription: septembre 2006
Messages: 66
Par défaut [VBA]Appeler une fonction à partir d'une variable

Bonsoir,

J'ai un p'tit souci dans une macro VBA. Je récupère via un formulaire une variable. Et j'aimerais lancer une fonction qui a le même nom que cette variable.

En gros, dans mon formulaire, l'utilisateur a la choix entre :
- libelle1
- libelle2

Lorsqu'il clique sur libelle1, j'aimerais que le code lance la fonction du même nom, donc libelle1(). Or je ne sais pas trop comment faire. Mon nom de variable est varFonction. Et lorsque je tape en VBA : varFonction(), il essaye de trouver la fonction intitulée varFonction(), et moi ce n'est pas ce que je souhaiterai, j'aimerais qu'il interprète le nom de la variable.

Merci de votre aide.
joquetino est déconnecté   Réponse avec citation
ANNONCES
Vieux 07/04/2008, 21h00   #2 (permalink)
XLDnaute Impliqué
 
Avatar de cbea
 
Date d'inscription: mars 2008
Version Excel : Excel 2003 (PC)
Messages: 745
Par défaut Re : [VBA]Appeler une fonction à partir d'une variable

Bonsoir joquetino,

Pourrais-tu joindre un extrait de ton fichier ?

Merci
__________________
@+
cbea
cbea est déconnecté   Réponse avec citation
Vieux 07/04/2008, 21h51   #3 (permalink)
XLDnaute Occasionel
 
Avatar de Kotov
 
Date d'inscription: avril 2005
Localisation: Orléans
Version Excel : Excel 2007 (PC)
Messages: 439
Par défaut Re : [VBA]Appeler une fonction à partir d'une variable

Bonsoir Joquetino, Cbea,

Comme le souligne Cbea, un exemple ne sera pas de trop.

Mais avant tout, fais bien attention lorsque tu réalises tes déclarations (variables, fonctions, objets ..)
En utilisant des noms identiques, tu t'exposes à des conflits de noms.

Personnellement, lorsque je monte un projet conséquent, je m'astreins à des règles strictes dans la définition des noms. C'est utile pour développer mais surtout pour apporter une modif beaucoup plus tard. (récemment lors d'une mise à jour, j'ai été ravi d'avoir procédé de manière rigoureuse en ... 2001 - j'avais dormi depuis !!)


Par exemple :
- mes fonctions commencent par "f" suivi d'une majuscule à la lettre suivante :
(intérêt : la lettre "f" m'indique qu'il s'agit d'une fonction, évite un conflit avec un nom réservé par VBA, et avec la majuscule en 2ème position, lorsque je tape le nom de la fonction plus tard, je vois tout de suite si ma saisie est correcte : la 2ème lettre passe en majuscule)

- sur le même principe mes variables commencent par "v"

- les objets :
les Userform débutent par USF (ex: USFsaisie)
les ComboBox par cbx (ex : cbxNom)
les Labels par lab (ex : labAdresse)
les Textbox par txt (ex : txtResultat)
etc..

C'est beaucoup plus facile de s'y retrouver.
Tu remarqueras qu'à chaque fois, il y a au moins une majuscule à l'intérieur qui me permet un controle lors de la saisie en minuscule.
Pour les userform, je fais l'inverse avec USF en majuscule : dans les projets avec appel de plusieurs formulaires dans la même macro, je repère plus vite ces 3 lettres en capitales.

Ce sont quelques trucs persos, à toi d'en trouver qui te conviennent.

Bonne soirée

Kotov

Dernière modification par Kotov ; 07/04/2008 à 22h21.
Kotov est déconnecté   Réponse avec citation
Vieux 07/04/2008, 22h13   #4 (permalink)
XLDnaute Junior
 
Date d'inscription: septembre 2006
Messages: 66
Par défaut Re : [VBA]Appeler une fonction à partir d'une variable

Ouaip, merci pour les conseils.

Pour l'exemple, c'est compliqué de le donner parce que je ne l'ai pas sous la main, mais grossièrement, voilà ce que je souhaite mettre en place :

J'ai une table, dans lequel je stocke un numéro de produit, un libellé de produit, et un nom de fonction.

Par exemple : maTable
1 ; produit1 ; nomFonction1

Lorsque l'utilisateur choisit le produit dans une liste déroulante, je récupère le nom la fonction associée grâce à une requête SQL, dans une variable de type String, nommé mafonction. Par exemple, si l'utilisateur choisit dans la liste le produit1, ma variable mafonction sera initialisée à nomFonction1. Jusque là, tout est ok.

Dans mon code vba, j'ai une fonction nomFonction1(), une fonction nomFonction1(), et une fonction nomFonction3().

Ce que je souhaiterai, c'est exécuter la fonction de libellé nomFonction1.
Ainsi, si l'utilisateur choisit le produit1, je souhaiterai exécuter la fonction nomFonction1(), qui a donc le même nom que la valeur de la variable mafonction.

Et là je bloque un peu ... Donc si vous pourriez m'apporter un p'tit coup de main, ça m'aiderait grandement.

Un grand merci d'avance.
joquetino est déconnecté   Réponse avec citation
Vieux 07/04/2008, 22h52   #5 (permalink)
XLDnaute Barbatruc
 
Date d'inscription: février 2005
Messages: 3 833
Par défaut Re : [VBA]Appeler une fonction à partir d'une variable

bonsoir


tu peux utiliser la méthode Run:

Code:
Sub Test()
    Dim x As String
    
    x = "NomFonction1"
    
    MsgBox Application.Run(x, 10)
End Sub
Code:
Function NomFonction1(x As Integer) As Integer
    NomFonction1 = x * 2
End Function


Bonne soirée
MichelXld
MichelXld est déconnecté   Réponse avec citation
Vieux 07/04/2008, 23h33   #6 (permalink)
XLDnaute Junior
 
Date d'inscription: septembre 2006
Messages: 66
Par défaut Re : [VBA]Appeler une fonction à partir d'une variable

Merci bcp, c'est exactement ce qu'il me fallait. Merci et bonne soirée.
joquetino est déconnecté   Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui

Discussions similaires
Discussion Auteur Forum Réponses Dernier message
Variable pour appeler procedure Line2Mire Forum Excel 2 17/10/2005 22h49
colorer une cellule à partir d'une fonction tniu Forum Excel 6 08/04/2005 18h16
selection d'une feuille a partir d'une date variable pipec Forum Excel Downloads - Archives 0 05/09/2004 11h56
Suppression de lignes a partir d'une variable lesuisse Forum Excel Downloads - Archives 2 14/10/2003 13h38
comment appeler une feuille à partir d'un module neuba Forum Excel Downloads - Archives 2 26/11/2002 18h29


Fuseau horaire GMT +2. Il est actuellement 15h25.


(C) 2006 Excel Downloads